サイトリニューアル作業が長引いて、記事がなかなか増やせなくてすみません。

今日はMVCモデルについて調べてみましたので、書いてみます。

目次

MVCモデルとは

私が勉強しているRailsはMVCモデルというフレームワークが採用されています。

MVCそれぞれを簡単にまとめると以下のようになります。

M:Model(モデル)

処理(ビジネスロジック)を担当します。

Railsの場合は大体DBへのアクセスを示す場合が多いようです。

要求された処理を行い、結果を返します。

V:View(ビュー)

表示や出力といったユーザインタフェースを担当します。

ユーザに表示するHTML/CSSを作成するのが役目です。

C:Controller(コントローラ)

モデルとビューの制御や中継といった処理を担当します。

Railsの場合は表示指示やロジック、DBへの処理を行うことが多いようです。

つまり、ユーザからの入力を基にしてモデルへ処理を依頼したり、ビューに対してユーザに表示する内容を渡したりします。

どんなプログラムがある?

例えば何らかのシステムへのログイン処理をMVCモデルで考えたとします。

Web画面にログイン情報としてユーザ名とパスワードを入力して「ログイン」ボタンを押すと、マイページが表示されるといったシステムを作ることができます。

このまま例として「ログイン」ボタンを押した後の処理を考えたとすると、

  1. ビューにて得たユーザ名とパスワードをコントローラに渡す。
  2. コントローラはビューから得たログイン情報を加工する。
  3. コントローラは加工した情報を基にモデルに問い合わせる。
  4. モデルは問い合わせ情報を基にDBを確認する。
  5. モデルはDBに合致するデータがあればコントローラに登録されているユーザであることを反す。
  6. コントローラは結果を受けてログイン処理を行う。
  7. コントローラはマイページを表示するようにビュー指示を出す。
  8. ビューはマイページを表示する。

といった感じで、モデル、ビュー、コントローラが連携をして処理を行います。

ちなみに2番の加工とはパスワードの暗号化処理などを想定しています。

調べてみての感想

理解はできたけど、実際にソースコードを書くときに迷いそうではありますね。

Railsも奥が深いです。