65
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

resourcesとresourceの違いについて!

Last updated at Posted at 2019-06-17

アプリケーション開発でルーティングを設定していく上で、両者の違いについて気になったので、備忘録含めてまとめていきたいと思います:relaxed:

resourcesメソッド

Railsの基本となるコントローラの7つのアクション名に対してのルーティングを自動で生成するメソッド!

(なんと便利な!):astonished:

postsテーブルにとっての1ツイート、usersテーブルにとっての1ユーザー、つまり、テーブルに保存されるレコード1つの情報のことをリソースと呼びます!

以下の例のような記述では、postsというリソースに対して、基本となる7つのアクションをリクエストするルーティングが設定されます。

config/routes.rb
Rails.application.routes.draw do
 resources :posts
end

ターミナルにてrake routesコマンドを実行すると以下のように7つのルーティングが設定されているのが確認できます。

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メソッド

resourceメソッドは、コントローラの7つのアクションに対して、indexとid付きのパスが生成されません!
show, editアクションの実行に、idが必要ない場合に有効です!

以下の例のような記述では、postsというリソースに対して、indexとidつきパスを外した残りのアクションをリクエストするルーティングが設定されます。

config/routes.rb
Rails.application.routes.draw do
 resource :posts
end

ターミナルにてrake routesコマンドを実行すると以下のように7つのルーティングが設定されているのが確認できます。

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


以上となります!

場面場面によってしっかり使い分ければ、とても便利ですね!

何か気になる点等、ございましたらお気軽にコメントお願いします!

ご静聴ありがとうございました:relaxed:

65
50
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
65
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?