Ruby on Railsのコードリーディング第3回-WelcomeControllerの呼び出し

アプリケーション

概要

Ruby on Railsのコードリーディング作業を記録する。

準備

  1. rails new RailsCodeReadingで新規プロジェクトを作成する。
  2. Gemfileに以下を追加
gem 'pg'
gem 'pry-rails'
gem 'pry-doc'
gem 'pry-byebug'
gem 'byebug'
  1. bundle config set path '.bundle'を実行してから、bundle installを実行する。
  2. rails generate controller Example
  3. railties/lib/rails/welcome_controller.rb#L9binding.pryを記述する。
  def index
    binding.pry
  end

コードリーディング

WelcomeController#indexがどのように呼ばれるのかコードリーディングしてみる。

WelcomeController#indexはconfig/routes.rbには定義されておらず、デフォルトで定義されているように見えるが、autoloadの仕組みによるものだと思われる。

railties/lib/rails.rb#L33

ここでautoloadされることによって、WelcomeControllerがルーティングにセットされる。

WelcomeControllerの実装はこれ。 railties/lib/rails/welcome_controller.rb#L5

詳細にコードを追えなかったが、autoloadの仕組みに乗っかることでルーティングの登録を明示的にしなくてもルーティングが解決されるように見える。


関連書籍