RailsでURLに引数を持たせるには、ルーティングでパラメータを使います。
- ルーティングファイルにパラメータ付きのURLとアクションを定義する。
- コントローラファイルにアクションメソッドを実装する。
ステップ1. ルーティングの定義
ルーティングファイルのconfig/routes.rbを開き、パラメータ付きのURLとアクションを定義します。ここではGETリクエストに対応したアクションを定義します。
定義の仕方
get ':コントローラ名/:パラメータ名', :to => 'コントローラ名#アクション名'
例
URL “http://ホスト/article/パラメータ/” にアクセスがあったときに、articleコントローラのcontentメソッドを呼びます。パラメータは、params[:id]に格納されます。
# config/routes.rb get 'article/:id', :to => 'article#content'
ステップ2. アクションメソッドの追加
Articleコントローラにcontentメソッドを追加します。ルーティングで定義したパラメータ”:id”は、params[:id]で読み出せます。読み出したパラメータをrenderで描画します。
# app/controllers/article_controller.rb class ArticleController < ApplicationController def content render :text => ":id = " + params[:id] end end
動作確認
URL “http://ホスト/article/hello_world”にアクセスし、”:id = hello world”と表示されることを確認します。