LoginSignup
0
0

More than 3 years have passed since last update.

MVCモデルってなに???

Posted at

Rails初学者の中には、MVCモデルって何かよくわからないという方が意外とたくさんいらっしゃいます。
MVCモデルがわからず、コードをひたすら書くことは果たしてrailsを理解していると言えるでしょうか?いいえ言えません!(反語
そんな方々にMVCモデルに対する苦手意識を無くして欲しいと思い、記事を書いてみました。
ぜひ最後までお付き合いください。

MVCモデルについて

MVCとは、プログラムを構成している中身を「モデル(Model)」「ビュー(View)」「コントローラ(Controller)」の3つに分類したものを言います。
それらの頭文字をとってMVCモデルと呼んでいます。

・モデル(Model)

モデルとは、データを扱う部分です。データベースに対してデータの登録・取得・更新・削除などの処理をします。

・ビュー(View)

PCの画面(ブラウザ)に表示される部分を言います。実際に入力する処理を行ったりする部分です。HTMLの作り込みはここになります。

・コントローラ(Controller)

ユーザからの要求に対して、Modelとの連携やどのViewを表示するのかといった処理を行う司令塔です。ユーザーと「Model」、「View」を繋ぐ橋渡し的存在と言われています。スクリーンショット 2020-06-11 23.31.07.png

例えば...

ここまで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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0