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