Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
19
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@ryuuuuuuuuuu

resourceとresourcesの違い

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
19
Help us understand the problem. What are the problem?