😽

【Rails】memberルーティングの使い方

2024/09/10に公開

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