Ruby on Railsのコードリーディング作業を記録する。
rails new RailsCodeReading
で新規プロジェクトを作成する。gem 'pg'
gem 'pry-rails'
gem 'pry-doc'
gem 'pry-byebug'
gem 'byebug'
bundle config set path '.bundle'
を実行してから、bundle install
を実行する。rails generate controller Example
binding.pry
を記述する。 def index
binding.pry
end
WelcomeController#indexがどのように呼ばれるのかコードリーディングしてみる。
WelcomeController#indexはconfig/routes.rbには定義されておらず、デフォルトで定義されているように見えるが、autoloadの仕組みによるものだと思われる。
ここでautoloadされることによって、WelcomeControllerがルーティングにセットされる。
WelcomeControllerの実装はこれ。 railties/lib/rails/welcome_controller.rb#L5
詳細にコードを追えなかったが、autoloadの仕組みに乗っかることでルーティングの登録を明示的にしなくてもルーティングが解決されるように見える。
関連書籍