【Rails】resourcesとresourceの違い

どうも、resourcesとresourceの違いをよくわかっていなかったので、調べました。

【Rails】resourcesとresourceの違い

結論

resourcesと違って、resourceは…

  • indexのルーティングが作成されない
  • id付きのルーティングが作成されない

とりあえず分からなければ、resourcesを使っておけば良いんでは?と思います。

ちょっと詳しく

resourcesとresourceでは、作られるルーティングが違います。

resourcesの場合

Prefix Verb         URI Pattern            Controller#Action
    posts GET    /posts(.:format)          posts#index
          POST   /posts(.:format)          posts#create
 new_post GET    /posts/new(.:format)      posts#new
edit_post GET    /posts/:id/edit(.:format) posts#edit
     post GET    /posts/:id(.:format)      posts#show
          PATCH  /posts/:id(.:format)      posts#update
          PUT    /posts/:id(.:format)      posts#update
          DELETE /posts/:id(.:format)      posts#destroy
resourceの場合

Prefix Verb         URI Pattern         Controller#Action
new_posts  GET    /posts/new(.:format)  posts#new
edit_posts GET    /posts/edit(.:format) posts#edit
     posts GET    /posts(.:format)      posts#show
           PATCH  /posts(.:format)      posts#update
           PUT    /posts(.:format)      posts#update
           DELETE /posts(.:format)      posts#destroy
           POST   /posts(.:format)      posts#create

作られるルーティングを見てもらえればわかりますが。resourceの方は、resourcesと違って、IDの入ったルーティングがないです。あとIndexページもないです。

じゃあどんな時にresourceって使うの?って話なのですが、結論を言うと複数人で使う予定のないページを作成する時ですね。

RailsでルーティングにIDを振っている理由は、複数人で使えるようにするためです。

ですが、自分だけ使えれば問題ないページもあります。例えば、自分のプロフィールを紹介するために作成したアプリなどです。

そんな時は、複数人で使うわけではないので、resourceで十分ですよという話ですかね。はい。以上です!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA