##始めに....。
・MVCモデルを理解したいので記事にしたいと思います。
#MVCモデルとは
~Model、View、Controllerに分割をしてコーディングを行うモデルのことを指す。~
役割
・Model --->システムの中でビジネスロジックを担当。
・View --->表示、入出力の処理を担当。
・Contoroller --->ユーザーの入力に基づき、ModelとViewを制御。
*記事参考、図引用
(https://qiita.com/s_emoto/items/975cc38a3e0de462966a)
*上の図 MVCモデルの概念図
(出典:http://www.slideshare.net/MugeSo/mvc-14469802)
#MVCモデルの挙動
Railsチュートリアルをやった際に出てきた図をおさらいしたいと思います。
「/users にあるindexページをブラウザで開く」という操作をしたとき、内部では何が起こっているかについてMVCで説明。
1.ブラウザから「/users」URLをリクエストし、サーバーに送信する。
2.「/users」リクエストはRailsのルーティング機構(ルーター)でUsersコントローラー内のindexアクションを割り当てる。
3.indexアクションが実行されるとUserモデルに問い合わせをする。
4.Userモデルは問い合わせに対して全てのユーザーをデータベースから取り出す。
5.データベースから取り出したユーザーの一覧をUserモデルからコントローラーに返す。
6.Usersコントローラーはユーザーの一覧を変数に保存しビューに渡す。
7.ビューが起動してERB(Embedded RuBy: ビューのHTMLに埋め込まれているRubyコード)を実行してHTMLを生成する。
8.コントローラーはビューで生成されたHTMLを受け取りブラウザに返す。
*記事、図 参考と引用
(https://railstutorial.jp/chapters/toy_app?version=6.0#sec-mvc_in_action)
#MVCのメリット
・機能が分割され独立しているので変更や修正がしやすく、何かあったとしても影響が出にくい。