Ruby on Rails

【Rails小ネタ】rootメソッドをかく場所に気をつける

個人アプリを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

つまり、アクセスされる回数が多いパスを上に書いたほうが読み込む量が減るのでなるべくそうしたほうがいいよということです。その中でもルートパスは明らかにアクセスされやすいので上の方に定義しましょうということでした。

以上、Railsの小ネタでした。

ABOUT ME
sakai
東京在住の30歳。元々は車部品メーカーで働いていてましたが、プログラミングに興味を持ちスクールに通ってエンジニアになりました。 そこからベンチャー → メガベンチャー → 個人事業主になりました。 最近は生成 AI 関連の業務を中心にやっています。 ヒカルチャンネル(Youtube)とワンピースが大好きです!