概要
Ruby on Railsのコードリーディング作業を記録する。
準備
rails new RailsCodeReadingで新規プロジェクトを作成する。- Gemfileに以下を追加
gem 'pg'
gem 'pry-rails'
gem 'pry-doc'
gem 'pry-byebug'
gem 'byebug'
bundle config set path '.bundle'を実行してから、bundle installを実行する。rails generate controller Example- railties/lib/rails/welcome_controller.rb#L9に
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の仕組みに乗っかることでルーティングの登録を明示的にしなくてもルーティングが解決されるように見える。