MVCとは
モデル(Model)、ビー(View)、コントローラー(Controller)の頭文字をとってMVCという。
Railsでは、MVC+ルーターに役割が別れる。
なぜ必要なの?
M/V/Cに分割することで、効率的に開発、保守することが可能になる。
MVCについて理解せず場当たり的に開発してしまうと、ディレクトリ構造がぐちゃぐちゃなってしまいがち。その結果、チーム開発や保守がしづらくなってしまう。
コントローラー
司令塔、MVCの中心的存在。
コントローラーを中心にMVCを覚えると分かりやすい。
役割
ユーザーの入力を元に、モデルとビューに命令を出す
ユーザー、モデル、ビューの橋渡し的存在。
ファイル
- 場所:
/app/controllers/[コントローラー名]_controller.rb - 名前:
[コントローラー名]_controller.rbとする - リソース毎にファイルが存在する。1
モデル
データベースを取り扱う。
データの追加、更新、削除を行う。
ファイル
- 場所:
/app/models/[モデル名].rb - リソース毎にファイルが存在する。1
ビュー
お客さんへの対応窓口みたいなもの。
役割
Webブラウザに表示するHTMLを動的に生成する。
ファイル
/app/views/[]
ルーター
コントローラーを補助する秘書のようなもの。
役割
役割としてはコントローラーの一部。
HTTPリクエストを読み取って、コントローラーへ処理を振り分ける。
ファイル
- 場所:
/config/routes.rb - ファイルはひとつ。
参考にしたサイト
https://rails-study.net/mvc-r/#i-4
https://www.geekly.co.jp/column/cat-technology/1911_040/