LoginSignup
1
1

More than 5 years have passed since last update.

Ruby on RailsのMVCの基本概念をおさえる

Last updated at Posted at 2018-04-20

Ruby on RailsのMVCについて

Ruby on Railsでアプリ開発する上で重要となるMVCの概念について簡単にまとめました。

MVCとは?

MVCは「Model(モデル)」「View(ビュー)」「Controller(コントローラ)」の略です。

MVCのアーキテクチャ

gainen_400.png

※「routes.rb」上のパスを通してユーザーから受けたリクエストに基づきコントローラーが各セクションへ指示を出す。(ユーザーがアクセスできるページは「config/routes.rb」に記述されている。)

Model(モデル)の役割

モデルではデータの管理がメイン業務になります。

コントローラーから受けた指示に従って必要なデータをデータベース(DB)から取り出してコントローラーへ情報を返します。

また、コントローラーからの命令に基づいて情報をデータベースに入力したり、特定の情報を別の情報に書き換えたりすることもあります。

Controller(コントローラー)の役割

コントローラーは、名前の通り「司令塔」的な役割を果たします。

コントローラーからモデルに対してデータの取り扱いについて指示を出したり、ビュー(View)へデザインやUIについての指示を出します。

コントローラーは「MVC」の中において中枢的な役割を果たし、モデルとビューはコントローラーの手足のように機能するというイメージになります。

基本的にコントローラーは、ユーザーから受けたリクエストに基づいて各セクションへ命令を下します。

ただ、ユーザーへの情報の出力・提示に関しては、直接的にはビューが担当しています。

ですので、見かけ上ではビューがユーザーとの直接窓口であるかのようなニュアンスで解説しているサイトも散見されるようです。

ですが厳密には、MVCの概念上においては、ユーザーからのリクエストをコントローラーが受け取り、その後、コントローラーがモデルやビューに対して必要な指令を出している、と捉えるのが一般的といわれています。

View(ビュー)の役割について

ビューには、デザインユーザーインターフェースを司る役割があります。

コントローラーから渡されたデータを利用してWebサイト上でどのように表現するのかビューで定義しています。

アプリやWebサイトをユーザーが操作したときに、操作した内容に応じて入力フォームを正しく表示させたり、必要な機能を展開させるといった役割もビューが担っています。

MVCを常に意識する必要性

アプリ・Web制作ではたくさんのファイルを扱ったり細かい編集作業を大量に実行することになります。

コマンドでアプリ実装を開始すると、「app」というディレクトリの直下に大量のフォルダとファイルが展開されます。

app_yousu.png

「controllers」「models」「views」以外の他にも、アプリを構成するために必要なフォルダ・ファイルがたくさん展開されているのが分かります。

アプリの開発規模が大きければ大きいほど、扱うフォルダやファイル数も増えていきます。

ですので、規模の大きいアプリを開発をする場合、今どの役割を持ったファイルを編集しているのか注意する(MVCの構造を意識する)必要があります。

1
1
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
1
1