RailsはRESTfulなルーティングが7つ(index, show, new, edit, create, update, destroy)用意されているが、それ以外のアクションを追加するときに member もしくは collection を使用する。
member ルーティングの使い方
memberルーティングは特定のリソースに対するアクションを追加するときに使用する
つまり、id が含まれるルーティングを追加したいときに使う
resources :events do
member do
get 'preview'
end
end
上記設定をすると、/events/1/preview
を Railsが認識し、リクエストをEventsコントローラのpreviewアクションにルーティングし、リソースid値をparams[:id]
に渡してくれる
collectionルーティングの使い方
collectionルーティングは一覧リソースに対するアクションを追加するときに使用する
つまり、id が含まれないルーティングを追加したいときに使う
resources :events do
member do
get 'search'
end
end
上記設定をすると、events/search
を Railsが認識し、リクエストをEventsコントローラのsearchアクションにルーティングしてくれる