Ruby on Rails ルーティング
resourcesとresourceの違いで混乱したので、メモ。
1.resourcesメソッド
リソースとは、コントローラが扱う対象に名前を付けたもの。
routes.rbに下記のように記述すると、リソース名を設定できる
resources :リソース名の複数形
たとえば、顧客情報をリソースとして扱うには、下記のように書く。
resources :customers
resourcesメソッドを使用すると、CustomersControllerに対して、次の7つのアクションのルーティングが設定できる。
①index
リソース一覧を表示する
(例)顧客一覧
②show
リソースの内容を表示する
(例)顧客情報を表示
③new
リソースを追加する画面を表示する
(例)顧客登録画面を表示する
④edit
リソースの編集画面を表示する
(例)顧客情報編集画面を表示
⑤create
リソースを追加する
(例)顧客を追加
⑥update
リソースを更新する
(例)顧客情報を更新
⑦destroy
リソースを削除する
(例)顧客を削除
<ルーティング>
アクション | パス | HTTPメソッド | パスを返すメソッド |
index | \customers | GET | customers_path |
show | \customers\モデルの主キー | GET | custmer_path(モデルオブジェクト) |
new | \customers\new | GET | new_customer_path |
edit | \customers\モデルの主キー\edit | GET | edit_customer_path(モデルオブジェクト) |
create | \customers | POST | customers_path |
update | \customers\モデルの主キー | PUT | custmer_path(モデルオブジェクト) |
destroy | \customers\モデルの主キー | DELETE | custmer_path(モデルオブジェクト) |
2.resourceメソッド
アプリケーションの中で1つしかない情報は単体リソースとして扱う。
routes.rbに下記のように記述すると、リソース名を設定できる
resource :リソース名の単数形
たとえば、アカウント情報をリソースとして扱うには、下記のように書く。
resources :account
resourceメソッドを使用すると、AccountsControllerに対して、次の6つのアクションのルーティングが設定できる。
①show
リソースの内容を表示する
(例)アカウント情報を表示
②new
リソースを追加する画面を表示する
(例)アカウント登録画面を表示する
③edit
リソースの編集画面を表示する
(例)アカウント情報編集画面を表示
④create
リソースを追加する
(例)アカウントを追加
⑤update
リソースを更新する
(例)アカウント情報を更新
⑥destroy
リソースを削除する
(例)アカウントを削除
<ルーティング>
アクション | パス | HTTPメソッド | パスを返すメソッド |
show | \account | GET | account_path |
new | \account\new | GET | new_account_path |
edit | \account\edit | GET | edit_account_path |
create | \account | POST | account_path |
update | \account | PUT | account_path |
destroy | \account | DELETE | account_path |