LoginSignup
2
1

More than 1 year has passed since last update.

【Rails6】ルーティングのrootメソッドの疑問について調べた

Last updated at Posted at 2021-04-20

※2022年から技術系の記事は個人ブログに投稿しております。ぜひこちらもご覧ください→yamaday0u Blog

Railsを学習しているとルーティングのrootパスの書き方について疑問に思うことがあります。
いろいろな学習教材や技術ブログの記事を見ていると、以下のどちらかの書き方をしています。

config/route.rb
root to:'pages#index'
root 'pages#index'

このto:があるのとないのとでは何か違いがあるのか。
Railsを学び始めてから半年間モヤモヤしていたので調べました!

結論:機能的な違いはない!

Railsドキュメントで確かめてみると、rootパスの書き方は実は3つありました。

config/route.rb
# 1
root controller: 'pages', action: 'index'

# 2
root to:'pages#index'

# 3
root 'pages#index'

上記はいずれもpagesコントローラのindexアクションをルートパスに指定する記述です。

#1はおそらく最も厳格な書き方(あるいはRailsの昔の書き方?)です。
:controller:actionでコントローラとアクションを明示的に指定します。

#2:toを使って#1を短縮した形で指定します。

#3:toすら省略してrootパスを指定します。

つまり、:toの有無によってrootパスを指定するという機能について違いは生じないということですね!

rootメソッドのオプション

Railsのrootメソッドには、パスを指定するオプションが以下のように2つあります。

オプション 機能
:controller, :action コントローラとアクションを指定。必ずセットで指定
:to :controllerと:actionの短縮形。#でコントローラとアクションを区切る

先述の通り、:toオプションすら省略できてしまうので、記述量を減らすことに重点を置いているなら#3の書き方を採用すると良さそうですね。

参考資料

Railsドキュメント ルーティング(routes)

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