LoginSignup
1
1

More than 3 years have passed since last update.

resourcesメソッドはとっても便利!

Last updated at Posted at 2020-02-15
1 / 2

はじめに

この記事はプログラミング初学者である私自身の備忘録として残します。

プログラミングの学習を初めてからというもの、ルーティングの記述ではずっとresourcesメソッドを使い続けていたので、なぜこのメソッドを使うのかおさらいしてみました。結論「やっぱり便利だな〜」。

ルーティング(routes.rb)の記述に際して

resourcesメソッドの 不使用時使用時 のコードを比べてみました。

あれ?そもそもルーティングってなんだっけ?って思った方は、こちらを読んでみてください。

### resourcesメソッド ** 不使用時 **
root to: 'posts#index'
get '/posts',     to: 'posts#index'
get '/posts/new', to: 'posts#new'
post '/posts',    to: 'posts#create'
### resourcesメソッド ** 使用時 **
root to: 'posts#index'
resources :posts, only: [:index, :new, :create]

resourcesメソッド不使用時
get '/posts', to: 'posts#index' を説明すると、

HTTPメソッドのgetを使ってposts パス(URIパターン)を取得した際の処理として、postsコントローラのindexアクションを指定する。

という意味です。
形としては

HTTPメソッド 'パス(URIパターン)', to: 'コントローラー名#アクション名'

てなかんじです。

resourcedメソッド使用時resources :posts, only: [:index, :new, :create]を説明すると、

postsコントローラーを参照(resource)して、コントローラーが持つ7つのアクションからindexnewcreateのみを使う。

という意味です。
形としては

resources :コントローラー名, only: [:アクション名, :アクション名・・・]

となります。
実はこれ、onlyを省けば7つのアクションすべて使えるという意味になります。

まとめ

どちらも同じ処理を行うコードですが、
resourcesメソッド不使用時では3行使って記述されているコードが、使用時ではたった1行にまとめられています。さらにもう一点、resourcesメソッドを使えば、HTTPメソッドパス(URIパターン)を指定する必要がありません。これだけで十分このメソッドの便利さが分かると思います。

HTTPメソッドパス(URIパターン)について気になった方は、自分が作業中のファイルをターミナルで開いて、rails routesで確認してみてください。(言葉の意味が分からない場合は文字をクリック)

もっと詳しく知りたい方は

以下にリンクを貼っておきます。

・Samurai Blog
【Rails入門】resourcesの使い方まとめ

・Pikawaka
【Rails】resourcesメソッドを徹底解説!

1
1
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
1
1