ActiveModel
概要
Active Modelは、Active Recordからデータベースに関連する部分を切り除いた機能を提供するやつ
ActiveModel は、Ruby on Railsの一部で、データのバリデーション、コンバージョン、変更の追跡、およびその他の関連機能を提供するためのモジュールセットです。実際、ActiveModel は、ActiveRecord のような ORM とは別のモデルを定義することを可能にします。これにより、データベースに保存されていないオブジェクトでも Rails の多くの機能を活用できます。
ActiveModel の主な特徴:
1. **バリデーション**: validates_presence_of や validates_length_of などのバリデーションヘルパーを提供します。
2. **変更の追跡**: オブジェクトが変更されたかどうかを検知し、変更された属性を追跡できます。
3. **コンバージョン**: モデルオブジェクトを別の形式に変換するためのヘルパーメソッドを提供します。
4. **コールバック**: 保存や検証の前後に特定のメソッドを実行する機能を持っています。
5. **Serializers**: オブジェクトをJSONやXMLなどの形式に変換するためのサポート。
ActiveModel を使用することで、オブジェクトがデータベースに直接関連していなくても、Railsのモデルとしての機能を持たせることができます。これは、APIのレスポンスやフォームオブジェクト、サービスオブジェクトなど、データベース以外のデータソースとやり取りする場合に非常に便利です。
ActiveRecordは、ActiveModelを通じてエラーメッセージを管理している
モジュール
ActiveModel::API
ActiveModel::AttributeMethods
ActiveModel::Callbacks
ActiveModel::Conversion
ActiveModel::Validations
ActiveModel::Naming
ActiveModel::Serialization
ActiveModel::Serializers::JSON
ActiveModel::Translation
ActiveModel::SecurePassword
参照