😽
【Rails】memberルーティングの使い方
member
とは:
-
member
は、特定のリソースに対してアクションを追加するときに使われる -
member
を使うことで、リソースのIDを含むルーティングを定義できる
例
Rails.application.routes.draw do
resources :habits, only: [:show] do
member do
post :plus
post :minus
end
end
end
こういったルーティングを定義すると、以下のようなURLを作ることができる。
plus_habit POST /habits/:id/plus(.:format) habits#plus
minus_habit POST /habits/:id/minus(.:format) habits#minus
この場合、Habit
リソースに対してのアクションを追加している。
member
を使ってHabit
のIDを取得しつつ、plus
,minus
アクションをPOST処理として定義している。
コントローラーでは
def plus
~
end
def minus
~
end
といったアクションを定義することになる。
要するに、特定のリソースのインスタンスに関連したアクションに使うということ。したがって、URLにリソースのIDが含まれる。
Discussion