rails 技術ブログ

rails 技術ブログ

勉強したことをアウトプットしていきます

【Rails】リクエスト/レスポンス処理の流れ(MVC)

Webブラウザでページをクリックして、そのページが表示されるまでの流れをご説明します。
まず、大まかな全体像はこちら↓
f:id:terakura-aina:20201214122052p:plain

次に1つずつ、どのような処理がされているのかを細かく見ていきます。


具体的な例えがある方がわかりやすいので、「ブログアプリの記事一覧を見たい」としましょう。

WebブラウザからWebサーバーにHTTPリクエストが送られる

f:id:terakura-aina:20201214113654p:plain

②Webサーバーはルーター/articles/indexのGETリクエストを伝える

f:id:terakura-aina:20201214114754p:plain

ルーターはarticlesコントローラにindexアクションを呼び出すよう伝える

f:id:terakura-aina:20201214115444p:plain

④articlesコントローラはindexアクションを呼び出す際に、indexアクションの中のArticle.all(記事の全データ)を呼び出すため、Articleモデルに要求

f:id:terakura-aina:20201214120151p:plain

⑤ArticleモデルはデータベースにArticle.allのデータを要求する
⑥データベースは要求されたデータを探し、モデルに返す

f:id:terakura-aina:20201214120816p:plain

⑦モデルは返ってきたデータをコントローラに渡す

f:id:terakura-aina:20201214122740p:plain

⑧コントローラは受け取ったデータをインスタンス変数に代入し、ビューで使用できるようにする
⑨ビューは受け取ったインスタンス変数等を元に、HTMLを作成し、コントローラに返す

f:id:terakura-aina:20201214122859p:plain

⑩出来上がったHTMLをWebサーバーに返す
⑪Webサーバーは受け取った情報をWebブラウザに返し、WebブラウザがHTMLを人が見えるように変換して表示してくれる



■参考にした記事

DIVE INTO CODE | Railsの処理の流れを理解しよう

Rails開発者が採用面接で聞かれる想定Q&A 53問(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社