Tanaka on Rails

行動・努力・俯瞰

オリジナルなルーティングを作る方法 〜 collectionとmemberの違い

collectionとは?memberとは?

resources以外で独自アクションを定義したい場合はcollectionmemberを使用します。
違いは:idをつける時はmember、付けない時はcollectionということ。

collectionを使う

config.routes.rb

resources :tasks do
  collection do
    get 'set'
  end
end

に設定して$ rails routesしてみると...

set_task GET  /tasks/set(.:format) tasks#set

となりtasks#setアクションが使えるようになります。

memberを使う

resources :tasks do
  member do
    patch 'reset'
  end
end

に設定して$ rails routesしてみると...

reset_task PATCH  /tasks/:id/reset(.:format) tasks#reset

となりtasks#resetアクションが使えるようになります。

参考

qiita.com