どうも、とがみんです。
以前の記事で、Ruby on RailsのMVCアーキテクチャの概要について説明しました。
この記事ではRuby on Railsにおいて、「Hello World!!」が表示されるまでの仕組みについて紹介します。
Hello Worldが表示されるまでの仕組み
ブラウザに「Hello World!!」が表示されるまでの仕組みは、以下のようになっています。
- クライアントがリクエストを送る
- routes.rbがリクエストに応じたコントローラのアクションメソッドを呼び出し実行する。
- アクションメソッドが実行されると、それに対応するテンプレートが検索される。
- ロジックとデザインが統合される。
- application.html.ernにテンプレートが埋め込まれ、最終的な出力を生成する。
実装手順
以下のような手順で「Controller」と「View」を作成し、ブラウザに「Hello World!!」を表示します。
- アプリケーションの作成
- コントローラーの作成
- テンプレートファイルを作成
- ルートの設定
- 表示
アプリケーションの作成
ターミナルにおいて、アプリケーションを作成したいディレクトリに移動し、以下のコマンドを実行します。
すると、アプリケーションを作成するためのフォルダ・ファイルが生成されます。
コントローラーの作成
testというコントローラーを作成します。作業ディレクトリ上で、以下のコードを実行します。
実行すると、いくつかファイルが生成されます。
app/controllersにtest_controller.rbというファイルに処理を記述していきます。
1 2 3 4 5 6 7 8 9 10 | #コントローラー class TestController < ApplicationController #アクションメソッド「view」 def view #インスタンス変数 @msg = "Hello World!!" end end |
コントローラー:MVCのControllerを担う要素
アクションメソッド:クライアントからのリクエストに対して、具体的な処理を実行していくためのメソッド
インスタンス変数:オブジェクトが持つ属性。値を保存するための変数。
テンプレートファイルの作成
アクションの結果を出力するためのテンプレートファイルを作成します。
テンプレートファイルは、/app/viewsフォルダ配下に「コントローラ名/アクション名.html.erb」という名前で保存します。
ここでは、testコントローラーのviewアクションに対応するテンプレートなので、「test/view.html.erb」を作成します。
Railsはアクションメソッドを実行した後、対応するテンプレートを検索し、実行します。
1 2 3 | <div id = "main"> <%= @msg %> </div> |
ルートの設定
クライアントから受け取ったリクエストから、そのリクエストに応じて、どのコントローラを呼び出すかを設定します。
この設定はconfig/routes.rbに定義します。
1 2 3 | Rails.application.routes.draw do get 'test/view', to: 'test#view' end |
表示
ブラウザで、http://localhost:3000/test/viewを入力すると、以下の画像のような経路を経て「Hello World!!」が表示されます。
まとめ
Ruby on Railsにおいて、「Hello World!!」が表示されるまでの流れについて説明しました。