MVCとは
UI(ユーザーインターフェース)を持つソフトウェアのアーキテクチャの1つ。
簡単に言うとUIを作るための構造の1つである。
M(Model)、V(View)、C(Controller)の3つから構成されており3つに役割を分けた構造をすることで管理しやすくしている。Railsはこのアーキテクチャを使用している。
M(Model)
Modelはデータとデータに関わる処理をオブジェクトとして実装したもの。
V(View)
クライアントがサーバーに対してリクエストして、サーバーはレスポンスを返す。このレスポンスの中身を組み立てているのがViewである。ViewにControllerがModelのオブジェクトを埋め込みデータベースの情報を表示させている。
C(Controller)
Controllerはクライアントからのリクエストを解析し、リクエストに応じたレスポンスを返すように制御する。
実際のMVCの流れ
- コントローラ層でブラウザなどのクライアントが送るリクエスト先のURLやVerb(GET、POST...)などをもとに、どのコントローラのどのアクションの処理が対応するのかを決める。
- アクションは必要に応じてModelを利用しデータベースのデータの読み出しや書き込みを行う。 例えば、特定の記事の詳細(ここではPostというModel)を表示したい場合、showアクションが該当するアクションだとすると、showアクションでは、PostオブジェクトをPostクラスから取得する。
- アクションごとにViewテンプレートが用意されており、このテンプレートを用いてHTMLを生成する。 ここでは2でオブジェクトの取得をした場合、HTMLにその情報を埋め込む。
- 最後にコントローラがレスポンスを作成し、Webサーバーを介してクライアントへ返す。
最後に
Railsを使いこなせるようになるためにはまずは、MVCの理解は不可欠である。
いろいろな記事を見て理解してもらえたらと思う。
もし、間違っている点がありましたらご指摘お願いします。