resourcesとresourceの違いと活用方法

resources

複数のリソースに対するCRUD処理を行うためのルーティングを作成する

 →railsにおける7大基本ルーティング

 

ヘルパーメソッド HTTPメソッド パス アクション名
users GET /users(.:format) users#index
  POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
  PATCH /users/:id(.:format) users#update
  DELETE /users/:id(.:format) users#destroy

 

resources :コントローラ名(複数形)

 

resource

ただ1つのリソースに対するCRUD処理を行うためのルーティング

リソースは1つだけなので、urlに:idを含む必要がなく、当然一覧画面(index)も必要ない

 →一覧表示(index) = 詳細表示(show)

 

ヘルパーメソッド HTTPメソッド パス アクション名
new_user GET /user/new(.:format) users#new
edit_user GET /user/edit(.:format) users#edit
user GET /user(.:format) users#show
  PATCH /user(.:format) users#update
  DELETE /user(.:format) users#destroy
  POST /user(.:format) users#dcreate

 

resource :コントローラ名(単数形)

 

使い方

基本的にはresourcesとresourceを組み合わせて使う

例として、会員サイトの様なものを挙げてみる

全会員一覧や各会員詳細は誰でも閲覧できて問題ないが、会員情報の編集などは自分のものだけしかできないと困ったことになってしまう