個人アプリをRailsでつくっているときにルーティングのrootメソッドを適当な位置に書いてしまっていたので、本来書くべき場所についてメモしていきたいと思います。
rootメソッドを書く場所とその理由
結論から書くとrootメソッドはroutes.rbのなるべく先頭に書くべきです。RailsはURLから該当するコントローラーとメソッドを探索する際、上から下へ探していき、最初にマッチしたコントローラーのメソッドにマッピングます。そして、rootはもっとも利用されるルーティングなため最初にマッチする必要があるというのが先頭に書くべき理由です。Railsガイドにも記載がありました。
例えば、下のようなルーティングがあった場合、/photoにアクセスするとimageコントローラーが呼ばれます。
Rails.application.routes.draw do
get 'photos', to: 'images#index'
get 'photos', to: 'photos#index'
end
class PhotosController < ApplicationController
def index
render plain: 'PhotosController'
end
end
class ImagesController < ApplicationController
def index
render plain: 'ImagesController'
end
end
localhost
関連リンク
http://localhost:3000/photosにアクセスします。images_controllerのindexメソッドが呼ばれているのが...
つまり、アクセスされる回数が多いパスを上に書いたほうが読み込む量が減るのでなるべくそうしたほうがいいよということです。その中でもルートパスは明らかにアクセスされやすいので上の方に定義しましょうということでした。
以上、Railsの小ネタでした。