はじめに
今回は、前回に引き続きRubyでアプリケーション開発する流れを確認していきたいと思います。
メッセージングアプリの作成を通して、基本的な機能を構築していきます。
前回まででパッケージのインストール等環境構築を実施しました。
本記事では、Railsでアプリケーションのページ作成を行う上で基本となるMVCという考え方とルーティングと呼ばれるRailsの機能を確認していこうと思います。
Railsチュートリアル、Railsガイドが参考になります。
第1章 ゼロからデプロイまで – Railsチュートリアル (railstutorial.jp)
第1章 ゼロからデプロイまで – Railsチュートリアル (railstutorial.jp)
流れ
以下のような流れで実施してきました。
後半の機能実装については、順次検討して進めていきます。
どんなWebアプリケーションにもある基本的な機能の実装から進めていきますが、今回は、そのなかでの前提として、MVCとルーティングに注目して確認していきます。
- 環境構築
- パッケージのインストール
- Homebrew
- rbenv
- ruby
- bundler
- yarn
- rails
- PostgreSQL
- プロジェクトの作成
- Railsアプリケーションの作成
- データベースの作成
- サーバー起動と稼働確認
- アセットパイプラインと画像の配置
- 画像を取得
- 画像を指定のディレクトリに保存
- 設定ファイルを更新
- パッケージのインストール
- トップページの作成[⭐️本記事の内容]
- MVCとは?
- ルーティングとは?
- 認証機能の実装
- etc…
MVCとは?
Ruby,RailsにおけるMVC(Model-View-Controller)というアーキテクチャパターンについて、簡単に確認しておきます。
MVC概要
誤解を恐れず最も簡略に表現した図を作成しました。

最も基本となる一連の挙動は以下のようになります。
- ユーザーがアクションを起こす(例: URLにアクセス)
- Railsのルーティングが適切なコントローラとアクションを決定
- コントローラがアクションを実行し、必要に応じてモデルを使用してデータを取得または操作
- コントローラが適切なビューを選択し、モデルからのデータを渡す
- ビューがHTMLを生成し、ユーザーに表示
それぞれの役割は以下の通りです。
Model
- 役割: データとビジネスロジックを管理
- 場所:
app/models/*.rb
- 機能:
- データベースとのやり取り(ActiveRecord)
- データの検証(バリデーション)
- 複雑なビジネスロジックの実装
- 例:
class User < ApplicationRecord
validates :email, presence: true, uniqueness: true
has_many :posts
def full_name
"#{first_name} #{last_name}"
end
end
View
- 役割: ユーザーインターフェースの表示
- 場所:
app/views/*.html.erb
- 機能:
- HTMLの生成
- データの表示形式の定義
- ユーザー入力フォームの作成
- 例:
<h1>Welcome, <%= @user.full_name %></h1>
<ul>
<% @user.posts.each do |post| %>
<li><%= post.title %></li>
<% end %>
</ul>
Controller
- 役割: モデルとビューの橋渡し
- 場所:
app/controllers/*.rb
- 機能:
- HTTPリクエストの処理
- モデルからのデータ取得
- ビューの選択
- レスポンスの生成
- 例:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@posts = @user.posts.recent
end
end
MVCのポイント
- 役割をはっきりと分離していること
- 各コンポーネントが特定の役割に集中できる
- コードを再利用できる
- モデルやビューを複数のコントローラで使用可能
- 保守性の向上
- 構造化されたコードにより、変更や拡張が容易
- テストの容易さ
- 各コンポーネントを独立してテスト可能
まとめ
今回は、簡単ですがRubyOnRailsで採用しているMVCアーキテクチャについて確認していきました。引き続き進めていきます!
コメント