#はじめに
RailsはMVCアーキテクチャを採用しています。
MVCアーキテクチャに基づき、Railsはどのような流れで処理を行っているのかを確認していこうと思います。
#注意すること
調べていて分かったことなのですが、どうやら
RailsはMVCではない
のだそうです。正しくは
RailsはMVC2である
そうです。
(Model2MVCやModel2など、他にも呼び方があるみたいです)
「Rails MVC」と「MVC」で検索して理解を深めようとした結果、
分かったような分かっていないような
というモヤモヤした気持ちになった方もいるのではないでしょうか。
今回はMVCとMVC2の違いについてはまとめませんが、
MVC?あぁRailsのやつだよね?
という理解は厳密には間違っているそうですので、先に記述しておきます。
#RailsのMVC
MVCは次の3つの要素を指します。
- Model(モデル)
- View(ビュー)
- Controller(コントローラー)
それぞれの役割は次のようになります。
##Model
データベースを管理し、検索・挿入・更新・削除などを行います。
##View
Webページ上でどのように表示するかが定義されています。
##Controller
ModelとViewに指示を出します。
Modelから必要な情報を取得し、それらをもとにViewにWebページを構築させます。
また、RailsではControllerでの処理をアクションと呼び、
複数定義することができます。
##処理の流れ
Model・Controller・Viewは次の順番で処理されます。
もう少し具体的に処理を書きだすと
- 指定されたControllerの、指定されたアクションが起動
- ControllerはModelを通してデータベースとやりとりする
- データベースから取得したデータを元に、ControllerはViewにWebページを構築させる
- Viewの内容をレスポンスとして返す
といった流れとなります。
#ルーティングについて
routes.rbファイルに定義された通り、
リクエストされたURLとControllerのアクションを結びつけます。
地図みたいなものですね。
#おわりに
各ファイルの役割や処理の流れが整理できていなかったのですが、
投稿するためにまとめることで多少理解できたかなと思います。
コーディングしているときに迷わないよう、常に処理を意識しながら作業していこうと思います。