Hit the books!!

プログラミング学習記録

RailsのコンポーネントとMVCの基礎

今回は言葉のまとめ。

RailsコンポーネントMVCモデル

Railsコンポーネントとは、Railsフレームワークを構成する基本要素のこと。

MVCとはアプリケーションを効率的でわかりやすい構造にするための実装パターンである。

M=Model

データベースとの接続とデータに対する操作

モデルについて↓

ud-ike.hatenablog.com

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などの他のデータベースを使用する際の設定変更も簡単に行うことができる。

Rake

Rubyで作成されたビルド用(構築確認用)ツール。Railsにおいてはデータベースのマイグレーションなどで使用する。