Rails初学者の中には、MVCモデルって何かよくわからないという方が意外とたくさんいらっしゃいます。
MVCモデルがわからず、コードをひたすら書くことは果たしてrailsを理解していると言えるでしょうか?いいえ言えません!(反語
そんな方々にMVCモデルに対する苦手意識を無くして欲しいと思い、記事を書いてみました。
ぜひ最後までお付き合いください。
#MVCモデルについて
MVCとは、プログラムを構成している中身を**「モデル(Model)」、「ビュー(View)」、「コントローラ(Controller)」**の3つに分類したものを言います。
それらの頭文字をとってMVCモデルと呼んでいます。
####・モデル(Model)
モデルとは、データを扱う部分です。データベースに対してデータの登録・取得・更新・削除などの処理をします。
####・ビュー(View)
PCの画面(ブラウザ)に表示される部分を言います。実際に入力する処理を行ったりする部分です。HTMLの作り込みはここになります。
####・コントローラ(Controller)
ユーザからの要求に対して、Modelとの連携やどのViewを表示するのかといった処理を行う司令塔です。ユーザーと「Model」、「View」を繋ぐ橋渡し的存在と言われています。
##例えば...
ここまでMVCモデルについてざっくり説明してきました。
ここからは2つの事例を見ていきます。
1つ注意点です。下に例毎にMVCモデルの動きの流れが書いてありますが、これはあくまでMVCモデルの動きです。システム全体から見た動きではないため、細かく見るともう少し複雑になるということはご認識ください。
- 例1:ブラウザでトップページへのリンクを押下した
事前条件としてトップページへのリンクを押下し、URlにIDを持たないページへ遷移するとします。
「ブラウザ」と「controller」、「View」の中だけで行われています。
ここでは、controllerをHomeController、Viewはtop.htmlとします。
ブラウザでリンクを押下
↓
HomeControllerのtopアクションを探しだす。(正確には、Controllerを見つけるために先にrouteを通るが、ここでは割愛)
↓
Homeフォルダのtop.htmlを見つけ、ブラウザに表示させる
といった流れです。
- 例2:ブラウザで投稿をした
今度はブラウザで新規投稿をするとします。今回はコメントの投稿としましょう。
MVCとブラウザ、データベース全てを使います。
controllerをCommentsController、ModelをComment、コメントを表示するviewはcommentフォルダのshow.html、コメントを入力して送信するviewはnew.html、コメントのデータが保存されるテーブルはコメントテーブルとします。
new.htmlでコメントを入力し送信ボタンを押下する
↓
CommentsControllerのcreateアクションが動き、入力内容がsaveされる
↓
コメントmodelを通り、コメントテーブルの適切なカラムに入力内容が保存される
↓
CommentsControllerのcreateアクションで指定されているリダイレクト先(今回はcommentフォルダのshow.html)へリダイレクトしようとする
↓
CommentsControllerのshowアクションを探し出す
↓
commentフォルダのshow.htmlがブラウザに表示される
といった流れです。
#最後に
MVCモデルについて、理解を深めることができましたでしょうか?
初学者の方にプログラミングを教えていると、ここのところの理解が追いついていない方をよく見かけるんです。
よくわかってなかったよーという方の知識が少しでも増えてくだされば幸いです。
MVCモデルの流れを知っていれば解決できるエラーもありますし、サイトの作成もしやすくなると思いますよ!
#
最後までお読みいただきありがとうございました!
今後さらに詳しい記事や発展的な内容を書いていきたいと思いますので、読んでいただけると嬉しいです。
ツイッターもやってます。日常のつぶやきやごく稀に情報発信もしておりますので、フォローしてくださると喜びます☺️→@saketi_sei