リソースに対してデフォルトで作成されるルーティング
Railsでは、リソースベースのルーティングを使うことで、リソースのコントローラに対する共通のルーティングを簡単に書くことができます。
resourcesを宣言するだけで、コントローラのindex、show、new、edit、create、update、destroyアクションを使える状態になります。
各アクションを個別に宣言する必要はありません。
ルーティングヘルパー
ルーティングをリソースで作成するとルーティングヘルパーが使えるようになります。
ルーティングヘルパーには、_pathヘルパーと、それぞれに対応する_urlヘルパーがあります。
リソースを追加する
リソースを定義することでデフォルトのルーティングは作成されますが、ときにデフォルト以外のリソースの追加が必要なケースがあります。
ルーティングを追加したいときには、メンバー(member)ルーティングとコレクション(collection)ルーティングが使えます。
2つのちがいは、作成されるURLにidを含めるかどうかです。
member : idを含めたURLを生成
collection:idを含めないURLを生成
ブロックの内側で認識させるHTTP verbをルーティング名ごとに指定して使います。
resources :xxxxxx do
member do
get 'xxxxxx'
end
end
なお、member do 〜 end は:onオプションを指定することで省略することができます。
resources :xxxxxx do get 'zzzzzz', on: :member end
onを省略することもできます。
その場合は、リソースidの値の取得にparams[:id]ではなくparams[:xxxxxx_id]を使う点が異なります。ルーティングヘルパーも、zzzzzz_xxxxxx_urlがxxxxxx_zzzzzz_urlに、zzzzzz_xxxxxx_pathがxxxxxx_zzzzzz_pathにそれぞれリネームされます。
