RailsのコンポーネントとMVCの基礎
今回は言葉のまとめ。
RailsコンポーネントとMVCモデル
Railsのコンポーネントとは、Railsフレームワークを構成する基本要素のこと。
MVCとはアプリケーションを効率的でわかりやすい構造にするための実装パターンである。
M=Model
データベースとの接続とデータに対する操作
モデルについて↓
V=View
見せ方に関する部分
C=Controller
ModelとViewをつなぐ役割
主なコンポーネント
MVC | Railsの主要なコンポーネント | 役割 |
---|---|---|
モデル | Active Record | リソース管理 |
ビュー | Action View | ユーザーインターフェース |
コントローラー | Action Controller | リソース制御 |
(ルーター) | Action Dispatch | Webリクエストの解析とルーティング |
Active Record
モデルの機能を提供し、データベースとモデルの仲介を行うORM(オブジェクトリレーショナルマッパー)として以下の役割を果たす。
- モデルとデータベーステーブル、モデル属性とテーブル項目の対応付け(マッピング)
- 複数のモデル間の関連付け(アソシエーション)
- リソース変更時の検証(バリデーション)
- リソース変更時のメソッド呼び出し(コールバック)
- データベーステーブル作成・変更のマイグレーション
Active Model
Active Recordの機能のうち、データベースとの連携を除くバリデーションやコールバックなどの機能を利用したいときにモジュールとして組み込む。
Action View
MVCモデルのビューの役割を担うビューテンプレートに対し、ルックアップ(データの埋め込み)とレンダリング(描画出力)機能を提供する。
Action Park(Action DispatchとAction Controller)
Action Dispatch(アクションの振り分け)とAction Controller(アクションの制御)という2つのコンポーネントを含む。Action Dispatchはルーターの機能、Action Controllerはコントローラーの機能を提供する。
Action Mailer
メールの送受信において、クライアント制御機能(メーラー)やテンプレート生成機能を提供する。
Action Cable
クライアントとサーバ間で行うチャットのようなリアルタイム通信機能(双方向通信)を提供する。
Active Job
バックグラウンドで実行できる非同期なジョブの生成機能、待ち行列管理(キューイング)などのジョブ管理機能を提供する。
Active Support
Rubyの拡張メソッドなどを提供。起動時に標準で組み込まれる。
Active Storage
Active Recordと連携した画像・動画などのファイルアップロード、参照機能を提供する。クラウド上のデータ蓄積サービスとスマートに連携する。
Railties
Railsアプリケーションの起動プロセスを管理し、Railsコマンド実行のインターフェース、およびRailsジェネレーターを提供する。
Railsがデフォルトで使用するツール・ライブラリ
Puma
Webサーバ(HTTPサーバ)のひとつ。
Rack
Rubyが使用可能なWebサーバとRubyフレームワークをスマートに接続するインターフェース。PumaはRack::Serverクラスから実装されている。
ERB
ビューテンプレートなどに組み込める文書埋め込み用のRubyスクリプト。拡張子を.erbとすることで、埋め込まれているRubyコードを実行し値の埋め込みを行う。
SQLite3
簡易的なデータベース。PostgreSQLなどの他のデータベースを使用する際の設定変更も簡単に行うことができる。