🐥
Rails学習 自前のルーティング設定
ここからが本文です
今回はZennに正しく投稿できるか確認のテスト記事です。--
アクション内容が異なるdestroyアクションを追加したい時・・・
Webサイトで画像の削除のルーティングを設定する場合,Railsはroutesを設定しておけば、
自動的にdestroyアクションを設定してくれる。
しかし、同じページに2枚の画像を表示してあり、それぞれに削除ボタンを設定したい場合は
routesで設定されているdestroyアクションでは数が足りない。
こういったケースではcollection/memberブロックをルーティングファイルに設定することで
独自のアクションを追加することができる。
resources: posts do
collection do
destroy :purge_main_photo
end
member do
destroy :purge_sub_photo
end
end
なお、collectionは単一リソース、memberは複数のリソースを扱うアクションを追加できる。
上記のケースであれば、rails routesで以下のルーティングが設定される。
ちゃんとヘルパーメソッドも追加される。
purge_main_photo DELETE /posts/purge_main_photo(.:format)
purge_sub_photo DELETE /posts/:id/purge_sub_photo(.:format)
後はpostコントローラーでアクションを設定すれば複数のdeleteを設定できる!!
Discussion