Output Diary

プログラミング × 読書 のアウトプットを発信しています

【Rails】Railsアプリの動作のしくみ

 

Railsアプリの動作を図にすると次のようになります。

https://techpit-market-prod.s3.amazonaws.com/uploads/part_attachment/file/21359/b011613d-0bda-4328-80b3-95a9d02fdcaa.png

1.  ブラウザのURL欄にアドレスを入力してEnterを押すとリクエスが飛んでいく。

2.  リクエストを受け取ったRailsアプリはHTMLをつくり、レスポンスとして返す。

3.  レスポンスを受け取ったブラウザはHTMLを解釈し、画面に表示する。

 

このような流れになっています。

 

Railsでの開発の進め方

 Railsでの基本的な開発の進め方は以下の2つを繰り返すサイクルになります。

 

  • ひな形になるファイル(ソースコードや設定ファイル)の生成
  • つくっているアプリ用にファイルを変更、追記

 

■ リクエストからレスポンスまでの流れ

 

リクエス Routes ControllerView レスポンス

 

リクエスを受けたRailsアプリは、

 Routes, Controller, Viewの3つのコードを通過してそれぞれの場所で処理を行い、レスポンスとしてHTMLを生成して返します。

 

■ Routesの役割

Routesは「リクエストのURLHTTPメソッド」に応じて次に処理を行う先を決める役割を担っています。

Routesの処理が終わると、コントローラのアクションへ処理が移ります。

RoutesはリクエストとControllerのアクションの対応表の存在です。

 

URLとは、

  • インターネット上の住所のこと。アクセス先を指示するもの。

 

 ▶HTTPメソッドとは、

  • そのURLに対して「何をするか」を指示するもの。
  • HTTPメソッド”GET"でリクエストが飛ぶ。
  • GETは「ページを取得する」指示のこと。

 

 

■ Routesの見方

f:id:kina_kq:20210331144958j:plain

 

■ コントローラ

  • コントローラでは様々な処理を行っており、次のビューで使うデータを作って渡します。
  • 次の処理先となるビューは、コントローラで指定することは出来ないが、指定していないときは、コントローラおよびアクションと同名のビューを選択します。

 

インスタンス変数とは

  • @始まりの変数
  • インスタンス変数を使うと、コントローラからこのあとの処理先であるビューへ情報を伝えることができます。
  • @始まりでは無い変数はローカル変数と呼ばれます。

 

■ ビュー

  • ビューではHTMLなど、ユーザーに届く部分を作ります。
  • 作られたHTMLはレスポンスとしてブラウザへ送られます。
  • index.html.erbは、HTMLのもとになるファイルです。
  • <%=%> というタグは、Rubyのコードを実行するためのタグです。

 

■ ここまでのまとめ

  • Routes→コントローラ→ビューの順番で処理を行い、
    HTMLを作ってブラウザへレスポンスを返す
  • RoutesはリクエストのURLとHTTPメソッドに応じて、
    処理をするコントローラとアクションを決める対応表
  • コントローラはさまざまな処理を行い、ビューでつかう情報を
    @はじまりのインスタンス変数を使って渡す
  • ビューはテンプレート書かれたRubyのコードを実行して埋め込み、HTMLを作る

 

■ぷらすα(公式ドキュメント)

 

参考

Railsの教科書