Ruby on Railsのコードリーディング第2回-Railsのリクエスト処理

アプリケーション

概要

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. コントローラーにindexメソッドを実装
  def index
    binding.pry
    render json: { message: 'Hello World!' }
  end
  1. ルーティングを設定
  get "example" => "example#index"

コードリーディング

Railsがリクエストを処理する流れを追う。

http://127.0.0.1:3000/exampleにアクセスして、コンソールでpry-backtraceをすると、スタックトレースを見ることができる。

大量に出力されるため、すべてを追いきれないので端折ってみていく。

  1. pumaがリクエストを受け付けて、Railsアプリケーションを呼び出す
  1. リクエストの情報を元に、ルーティングを解決する
  1. コントローラーのindexを呼び出す

想像していたよりも複雑で、Rubyに慣れていないのもあり、雰囲気程度しか読み切れなかった。。。

参考


関連書籍