はじめに
今回、RailsにおけるMVC(Model-View-Controller) の仕組みについて学びました。
Railsを使ったアプリケーション開発では、このMVCの概念を理解することが非常に重要です。
本記事では、MVCの基礎から、リクエストの流れ、ルーティング、コントローラー、モデル、ビューの役割についてまとめていきます
📌 MVCとは?
MVCとは、アプリケーションの構造を Model(モデル)・View(ビュー)・Controller(コントローラー) の3つに分ける設計パターンのことです。
| 要素 | 役割 |
|---|---|
| Model(モデル) | データを管理し、データベースとのやり取りを担当 |
| View(ビュー) | ユーザーに表示されるインターフェース(HTML, CSS) |
| Controller(コントローラー) | リクエストを受け取り、モデルとビューを繋ぐ役割 |
📌 リクエストとレスポンスの流れ
- ユーザーが ブラウザ からURLを指定してアクセス(リクエスト)
- リクエストが Webサーバー に送信される
- WebサーバーがリクエストをRailsアプリケーションに渡す
- Railsアプリ内で ルーティング → コントローラー → モデル → ビュー の順で処理
- ビューで作成されたHTMLをコントローラーがブラウザへ返す(レスポンス)
この流れを理解しておくと、Railsのコードを実際に書いたときに仕組みが分かりやすくなるのです。
📌 ルーティングとコントローラー
🔹 ルーティング(Routing)とは?
ユーザーからのリクエストは URL として届きます。このURLを元に、どのコントローラーのどのアクションを実行するのかを決めるのが ルーティング です。
Railsでは、ルーティングは config/routes.rb に記述されます。
Rails.application.routes.draw do
get 'articles', to: 'articles#index' # 「/articles」へのリクエストはArticlesControllerのindexアクションへ
end
🔹 コントローラー(Controller)とは?
コントローラーは、リクエストを受け取って処理し、モデルやビューと連携する 役割を持ちます。
例えば、articles_controller.rb の index アクションを見てみます。
class ArticlesController < ApplicationController
def index
@articles = Article.all # モデルを使ってデータを取得
end
end
このコードでは、Article.all を使って データベースから記事一覧を取得 し、それを @articles に格納しています。
📌 モデル(Model)
Railsでは、データベースとのやり取りを行うのがモデルです。
例えば、記事のデータを管理する Article モデルがある場合、次のようにデータを取得できます。
class Article < ApplicationRecord
end
# 記事一覧を取得
Article.all
モデルを介してデータベースとやり取りを行い、データの取得・保存・更新・削除を管理します。
📌 ビュー(View)
ビューは、ユーザーに表示される HTML部分 を担当します。
例えば、app/views/articles/index.html.erb というビューを作成し、index アクションから取得した @articles を表示できます。
<h1>記事一覧</h1>
<ul>
<% @articles.each do |article| %>
<li><%= article.title %></li>
<% end %>
</ul>
ビューに @articles を渡すことで、記事一覧をHTMLとして表示できるようになります。
📌 まとめ
✅ MVCとは? → Model(データ)、View(UI)、Controller(処理)で構成される設計パターン
✅ リクエストとレスポンスの流れ → ユーザーのリクエストがルーティングを経由して処理され、ビューでHTMLが生成される
✅ ルーティングとコントローラー → ルーティングでどのコントローラーのアクションを実行するか決定
✅ モデルの役割 → データベースとやり取りし、データの取得・保存を管理
✅ ビューの役割 → 取得したデータをHTMLとしてユーザーに表示
初学者のため、間違えていたらすいません。
引き続き、学習を続けていきます。