コントローラーとビューの連携

本物は色々なモジュールに分かれてたり、継承してたりするわけですが、究極に単純化するとコントローラーがview_contextというオブジェクトを持っていて、renderを呼ぶタイミングでTemplateクラスを通してerbファイルがコンパイルされて、ソースはview_contextオブジェクトのメソッドに追加されます。最後にコントローラーオブジェクトのインスタンス変数のようなもの(@response_body)に記録されます。

あぁ、あとはview_context_classが作られるときに、ヘルパー関数もview_contextのメソッドとして使えるように動的にincludeされるみたいですね。