このエントリーをはてなブックマークに追加
2013-07-25 09:10:00 +0900

Railsでは,たとえば複数のタグのついた記事をタグで絞り込んで表示するためのページを作りたい場合がある. こういうときに単純に以下のようなrouteを定義することができる.

match /tags/(:tag1/(:tag2(/:tag3)))

こうするとGET /tags/rails/route/tagのようなリクエストを受けてコントローラで

params[:tag1] => "rails"
params[:tag2] => "route"
params[:tag3] => "tag"

のように受け取ることはできるけど,とてもめんどくさいし,DRYでもないし,指定できるタグ数に上限がついてしまう. こういう場合に以下のようにrouteを設定するとすべてのパラメータをまとめて受けることが可能になる.

match /tags/*tags

この場合,GET /tags/tag1/tag2/tag3のリクエストを受けると,

params[:tags] => "tag1/tag2/tag3"

を受け取ることができる。



コメント投稿
最大255
最大1000
最大255
Email never displayed on this site. 最大255
Site is displayed. 最大255

記事一覧へ