【Rails】Railsアプリの動作のしくみ
Railsアプリの動作を図にすると次のようになります。
1. ブラウザのURL欄にアドレスを入力してEnterを押すとリクエストが飛んでいく。
2. リクエストを受け取ったRailsアプリはHTMLをつくり、レスポンスとして返す。
3. レスポンスを受け取ったブラウザはHTMLを解釈し、画面に表示する。
このような流れになっています。
■ Railsでの開発の進め方
Railsでの基本的な開発の進め方は以下の2つを繰り返すサイクルになります。
-
ひな形になるファイル(ソースコードや設定ファイル)の生成
-
つくっているアプリ用にファイルを変更、追記
■ リクエストからレスポンスまでの流れ
リクエスト → Routes → Controller → View →レスポンス
Routes, Controller, Viewの3つのコードを通過してそれぞれの場所で処理を行い、レスポンスとしてHTMLを生成して返します。
■ Routesの役割
Routesは「リクエストのURLとHTTPメソッド」に応じて次に処理を行う先を決める役割を担っています。
Routesの処理が終わると、コントローラのアクションへ処理が移ります。
RoutesはリクエストとControllerのアクションの対応表の存在です。
▶URLとは、
- インターネット上の住所のこと。アクセス先を指示するもの。
▶HTTPメソッドとは、
- そのURLに対して「何をするか」を指示するもの。
- HTTPメソッド”GET"でリクエストが飛ぶ。
- GETは「ページを取得する」指示のこと。
■ Routesの見方
■ コントローラ
- コントローラでは様々な処理を行っており、次のビューで使うデータを作って渡します。
- 次の処理先となるビューは、コントローラで指定することは出来ないが、指定していないときは、コントローラおよびアクションと同名のビューを選択します。
■ インスタンス変数とは
- @始まりの変数
- インスタンス変数を使うと、コントローラからこのあとの処理先であるビューへ情報を伝えることができます。
- @始まりでは無い変数はローカル変数と呼ばれます。
■ ビュー
- ビューではHTMLなど、ユーザーに届く部分を作ります。
- 作られたHTMLはレスポンスとしてブラウザへ送られます。
index.html.erb
は、HTMLのもとになるファイルです。<%
= と%>
というタグは、Rubyのコードを実行するためのタグです。
■ ここまでのまとめ
- Routes→コントローラ→ビューの順番で処理を行い、
HTMLを作ってブラウザへレスポンスを返す - RoutesはリクエストのURLとHTTPメソッドに応じて、
処理をするコントローラとアクションを決める対応表 - コントローラはさまざまな処理を行い、ビューでつかう情報を
@はじまりのインスタンス変数を使って渡す - ビューはテンプレート書かれたRubyのコードを実行して埋め込み、HTMLを作る
■ぷらすα(公式ドキュメント)