😽
【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