LoginSignup
30
20

More than 5 years have passed since last update.

resourceとresourcesの違い

Last updated at Posted at 2019-02-08

resources

resourcesは、複数のリソースに対するCRUD処理を行うためのルーティングを生成する(7つのCRUDすべて。)
※リソース名がbooksと複数形になっていることにも注意

resource

resourceは、ただ1つのリソースに対するCRUD処理を行うためのルーティングを生成する。
※リソース名がbookと単数形になっていることにも注意

こちらの場合は、リソースは1つだけなのでurlに:idを含む必要がない。
そして、一覧画面(indexアクション)が必要ないので、/bookに対するGETリクエストはそのリソースの表示(showアクション)であることが分かる。

(例としてrails routesでのpath)

/mobile/password_resets/:id(.:format)  ←idが必要 
/mobile/account/edit(.:format)        ←idがいらない

つまりは「idがいるかいらないか」。pathにidが含まれなくなる。

resourcesは「人」や「本」などのようにアプリケーション上に「複数存在する」リソースを扱う場合に用いていました。
自身のプロフィールの様に、ログインユーザーからみてアプリケーション上、1つしか存在しない様なリソースが存在します。その様なリソースについて、REST的なルーティングを定義したい場合には、resourceを定義をします。

たとえば、/profileでは常に「現在ログインしているユーザー自身」のプロファイルを表示し、他のユーザーidを参照する必要がないとします。このような場合には、単数形リソース (singular resource) を使用してshowアクションに (/profile/:idではなく) /profileを割り当てることができます。

参考
https://railsguides.jp/routing.html
https://rails-study.net/resources-resource/
https://qiita.com/Atsushi_/items/bb22ce67d14ba1abafc5

30
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
20