MVCモデルとは
プログラムの役割を
・Model
・View
・Controller
の3つに分ける考え方です。
Controllerとは
ユーザからリクエストを受けてレスポンスを返す役割です。
Viewとは
画面表示(HTML)を担当する役割です。
Modelとは
DB関連の処理を担当する役割です。
-処理の流れ-
例:特定のブログ記事1件を表示するリクエストが送られてきた場合
ブラウザから記事を閲覧したい[http://xxx/blogs/1]とリクエストが送られてきました。
※blogs/1なのでid=1になります。
↓
Routerというところが呼び出されます(RouterはControllerを呼び出す役割)。
↓
「ブログ記事1件を表示したい」とリクエストされたため、RouterはControllerの中のblogsContorollerというクラスを呼び出します。
↓
今回は「ブログ記事1件を表示したい」とリクエストを受けたためshow
アクションが呼び出されます。
※Controllerはblogの情報を
・投稿したいのか(new
)
・表示したいのか(show
)
などによって取るべきアクションが変わります。
↓
Controllerはid=1の情報をくださいとModelに依頼します。
↓
Modelはid=1の情報をDBから取得してきます。
↓
DBで取得してきた情報をControllerに返します。
↓
ControllerはModelから渡された情報をもとに処理をし、Viewに渡したい情報をインスタンス変数に代入します。
↓
Viewは渡されたインスタンス変数をもとに画面に表示するHTMLを作成してControllerに返します。
↓
Controllerは受け取ったHTMLをレスポンスとしてブラウザに返します。
※MVCは3つの役割を表しているだけで全ての処理がこの3つに該当するわけではありません。