#はじめに
筆者の漁った色々な知識を備忘録としてまとめ、残しています。
##MVCとは
モデル(Model)頭文字「M」、ビュー(View)頭文字「V」、コントローラー(Controller)頭文字「C」の略であり、アプリケーション設定を整理するための概念。イメージはユーザーがブラウザで入力(クリック)した内容をWebアプリケーションで処理する流れ。
RubyonRailsは、MVCモデルで構成されている。
###Model(モデル)
アプリケーション固有のデータを扱う部分です。Controllerからの依頼を受けて処理する(Modelに直接処理を記入することもある(例:「特定の文字列を探して抽出して」とか、「データベースのこの項目には空白入れないで」 等))。データベースに対して、データの登録や取得、更新、削除などの処理を行う。
###View(ビュー)
PCの画面に関わる部分。データベースの情報を表示する場合、Controllerから情報を受け取り、ブラウザに表示させるHTMLを実際に組み立てる。
###Controller(コントローラ)
ModelやViewを制御する部分です。ユーザーからのリクエスト(例:TOPから商品一覧(データベースに登録されてる商品)をみたい 等)を受けて、Modelと連携したり、どのView(画面)を表示するのかといったことを制御します。
##RubyonRailsでは
プログラムの構造をMVCの役割によって分けることで、プログラムのメンテナンス性を向上させたり、複数人で開発するときに影響する箇所を限定できるようになっています。
###抽象化すると
Viewが営業
Controllerが事業推進
Modelが事務
Veiw(商品一覧)を表示する時
View :問い合わせがあったので、Controllerさんお客さんに見せるプレゼン用のカタログください!
Controller :了解!Viewさん! Modelさん!キャビネットからもってきて!
Model :controllerさん、了解しました。今とってきます。
Viewでユーザーが新規会員登録された時
View :Controllerさんお客さんから依頼とってきました!
Controller :ありがとう!Viewさん! Modelさんに渡しとくね!
Model :controllerさん、了解しました。記録残しておきますね。
そして各役割ごとに、業務をルーチン化して効率を向上させている。
※viewとcontrollerには、実は課長(application_controller.rbとapplication_html.erb))がいて、課(フォルダ)内にまとめて命令を出せたりする。
みたいなイメージを持っています。