1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails入門】MVC解説 🚀

1
Last updated at Posted at 2025-03-14

はじめに

今回、RailsにおけるMVC(Model-View-Controller) の仕組みについて学びました。
Railsを使ったアプリケーション開発では、このMVCの概念を理解することが非常に重要です。
本記事では、MVCの基礎から、リクエストの流れ、ルーティング、コントローラー、モデル、ビューの役割についてまとめていきます


📌 MVCとは?

MVCとは、アプリケーションの構造を Model(モデル)・View(ビュー)・Controller(コントローラー) の3つに分ける設計パターンのことです。

要素 役割
Model(モデル) データを管理し、データベースとのやり取りを担当
View(ビュー) ユーザーに表示されるインターフェース(HTML, CSS)
Controller(コントローラー) リクエストを受け取り、モデルとビューを繋ぐ役割

📌 リクエストとレスポンスの流れ

  1. ユーザーが ブラウザ からURLを指定してアクセス(リクエスト)
  2. リクエストが Webサーバー に送信される
  3. WebサーバーがリクエストをRailsアプリケーションに渡す
  4. Railsアプリ内で ルーティング → コントローラー → モデル → ビュー の順で処理
  5. ビューで作成された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としてユーザーに表示


初学者のため、間違えていたらすいません。
引き続き、学習を続けていきます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?