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

http://localhost:3000/photosにアクセスします。images_controllerのindexメソッドが呼ばれているのが分かりました。

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

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

ABOUT ME
sakai
三重出身の28歳。前職はメーカーで働いていて、プログラミングスクールに通って未経験からWeb業界に転職しました。Railsをメインで使っていて、AWSも少しできます。音楽を聞くこととYoutubeを見るのが好きです。最近はへきトラ劇場にハマってます

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です