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を組み合わせて使う
例として、会員サイトの様なものを挙げてみる
全会員一覧や各会員詳細は誰でも閲覧できて問題ないが、会員情報の編集などは自分のものだけしかできないと困ったことになってしまう