🎯 この項の目的
Railsを動かす3人の“主役”たち(モデル・コントローラ・ビュー)の役割を理解すること。
これを理解すれば、「どのファイルに何を書くのか」が自然と見えてきます✨
🏭 1. MVCはRailsの「分業システム」
Railsは「Webアプリの時短工場」として紹介しましたが、
その工場の中では、3つの担当(Model・View・Controller) がチームとして働いています。
それぞれの役割を簡単にたとえると、こんな感じ👇

この3人が協力して、1つのWebアプリを動かしているんです。
💬 2. MVCの流れをイメージしてみよう
ユーザーがブラウザでボタンを押したとき、Railsの中ではこんな流れが起きています👇
👩💻 ユーザー ↓ (クリック!) 🧭 ルーティング(入口で案内) ↓ 🎮 コントローラ(司令塔が命令を出す) ↓ 🧱 モデル(データを取りに行く・保存する) ↓ 🎨 ビュー(画面を表示) ↓ 🌐 ユーザーのブラウザに返る
この流れを「リクエスト→レスポンスの流れ」と呼びます。
次の章ではもう少し詳しく見ていきますが、
ここでは「それぞれの役割のつながり」をざっくり掴むことが大切です💡
🧱 3. モデル(Model)=「データの倉庫係」
モデルは、データベースとやり取りする部分です。
たとえば、ユーザー情報・投稿内容・コメントなどを保存・取得します。
# app/models/post.rb class Post < ApplicationRecord validates :title, presence: true end
💬 ポイント:
- モデルは「データのルール」を決める(例:タイトルが空じゃダメ!)
- Post モデルなら、対応するテーブルは posts(自動で紐づく)
- データを扱う命令(保存・検索など)は、ほぼモデルに書く
📦 たとえ:
倉庫係が「商品(データ)」を正しく棚に置いたり、取り出したりするような役割です。
🎮 4. コントローラ(Controller)=「司令塔・現場監督」
コントローラは、ユーザーの行動に応じて「何をするか」を決める部分です。
たとえば、「投稿一覧を表示したい」とリクエストが来たら、
「モデルにデータを取りに行け」「ビューに表示させろ」と命令します。
# app/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
@posts = Post.all
end
end
💬 ポイント:
- def index のようなメソッドを「アクション」と呼ぶ
- アクションごとに、ビュー(表示する画面)が自動で対応する
- データの処理はモデルに、見た目はビューに任せる(司令塔は命令だけ!)
🎯 たとえ:
工場の監督が「倉庫係、商品を持ってきて!」「デザイナー、きれいに並べて!」と指示を出す感じです。
🎨 5. ビュー(View)=「見た目担当のデザイナー」
ビューは、**ユーザーが実際に目で見る部分(画面)**です。
HTMLとRubyを組み合わせて、動的にページを作ります。
💬 ポイント:
- <%= %> の中はRubyのコード。変数や値を表示できる。
- コントローラで用意した @posts をここで使う。
- ファイル名とアクション名をそろえると、自動で対応する(規約より設定!)
🎨 たとえ:
工場の「展示係」が、倉庫から届いた商品をきれいに陳列するようなイメージです。
🔁 6. 3つの役割の関係をまとめると

💬 覚え方のコツ:
モデル=倉庫、コントローラ=司令塔、ビュー=デザイナー。
コントローラが全体をまとめ、モデルとビューをつなぐ。
🌱 7. まとめ:MVCはRailsの心臓部!
- Railsは MVC構造 でできている
- それぞれの役割を分けることで、整理されたコードを書ける
- コントローラが中心となり、モデルとビューをつないでアプリを動かす
💡 一言で言うと:
「モデルはデータを管理し、コントローラが指示を出し、ビューが見せる。」
この3つがチームプレイでWebアプリを動かしている🎮