LoginSignup
7
1

More than 3 years have passed since last update.

RailsのMVCをまとめてみる

Last updated at Posted at 2019-07-30

はじめに

RailsはMVCアーキテクチャを採用しています。
MVCアーキテクチャに基づき、Railsはどのような流れで処理を行っているのかを確認していこうと思います。

注意すること

調べていて分かったことなのですが、どうやら
RailsはMVCではない
のだそうです。正しくは
RailsはMVC2である
そうです。
(Model2MVCやModel2など、他にも呼び方があるみたいです)

「Rails MVC」と「MVC」で検索して理解を深めようとした結果、
分かったような分かっていないような
というモヤモヤした気持ちになった方もいるのではないでしょうか。

今回はMVCとMVC2の違いについてはまとめませんが、
MVC?あぁRailsのやつだよね?
という理解は厳密には間違っているそうですので、先に記述しておきます。

RailsのMVC

MVCは次の3つの要素を指します。

  • Model(モデル)
  • View(ビュー)
  • Controller(コントローラー)

Rails_MVC.png

それぞれの役割は次のようになります。

Model

データベースを管理し、検索・挿入・更新・削除などを行います。

View

Webページ上でどのように表示するかが定義されています。

Controller

ModelとViewに指示を出します。
Modelから必要な情報を取得し、それらをもとにViewにWebページを構築させます。

また、RailsではControllerでの処理をアクションと呼び、
複数定義することができます。

処理の流れ

Model・Controller・Viewは次の順番で処理されます。

Rails_MVC_Order.png

もう少し具体的に処理を書きだすと

  1. 指定されたControllerの、指定されたアクションが起動
  2. ControllerはModelを通してデータベースとやりとりする
  3. データベースから取得したデータを元に、ControllerはViewにWebページを構築させる
  4. Viewの内容をレスポンスとして返す

といった流れとなります。

ルーティングについて

routes.rbファイルに定義された通り、
リクエストされたURLとControllerのアクションを結びつけます。
地図みたいなものですね。
MVC_URL_Routes_MVC.png

おわりに

各ファイルの役割や処理の流れが整理できていなかったのですが、
投稿するためにまとめることで多少理解できたかなと思います。
コーディングしているときに迷わないよう、常に処理を意識しながら作業していこうと思います。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1