⛳
resourceとresources
ルート設定で違いがはっきりします。
- resources:
複数形であり、一般的には複数のリソースを扱います。
これにより、標準的なアクション(index, show, new, create, edit, update, destroy)
のルーティングが自動的に生成されます。
例えば、resources :usersは、
ユーザーの一覧表示、個別ユーザーの詳細表示、ユーザーの新規作成フォーム、ユーザーの更新フォームなど、複数のユーザーに関連するアクションへのルーティングを提供します
- resource:
単数形であり、主に単一のリソースに対する操作を扱います。
これは、特定のIDを必要としない場合
(例えば、現在ログインしているユーザーのプロファイルページ)に使用されます。
indexアクションは含まれません
なぜindexもIDも必要ないか?
上述したように、resourceを使用する場合、単一リソースが使用対象をなることを説明しました。
しかし、indexアクションはモデルのリソース全てを表示することを意図しています。
結果、単一リソースであるプロフィール画面を扱う際に複数を表示するindexアクションは不要です。
idも同様に
プロフィール設定画面はどうでしょうか。
単一リソースであるプロフィールは、指定せずとも一つしかない。
そのため、、idを指定する必要がそもそもないという理由で:idが消えています。
どっちを使用するか?と場面に遭遇したら、IDを付与する理由は?というところで考えてみてください。
例えば、
1人が、何投稿もする場合、IDは必要。(なぜなら、どこの投稿と繋げているかで、他が決まるため)
ですが、
マイページは? 1人に対して何投稿もないです。(1人1ページのサイトしか見たことありません。)
という形で、つなげるidは必要なのか?という目線で判断しましょう。
Discussion