その他

【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
酒井 駿
名古屋工業大学大学院卒業後、豊田合成(株)で品質管理を経験し、その後スタートアップ・マネーフォワードを経て、2024年11月に株式会社EGGHEAD創業。 製造業とエンジニアリング、両方の現場の知見を活かし、製造業における生成AIを活用した業務改善やシステム開発を支援します。