LoginSignup
0
0

More than 3 years have passed since last update.

Formオブジェクトパターンを理解する②ActiveModelモジュール紹介

Posted at

@kazutosatoさん
https://qiita.com/kazutosato/items/91c5c989f98981d06cd4

Railsガイド
https://railsguides.jp/active_model_basics.html

モジュール名 機能
AttributeMethods クラスのメソッドにカスタムのプレフィックスやサフィックスを追加できます。
Callbacks Active Recordスタイルのコールバックを提供します。
Conversion クラスでpersisted?メソッドとidメソッドが定義されていれば、このActiveModel::ConversionモジュールをインクルードしてRailsの変換メソッドをそのクラスのオブジェクトに対して呼び出すことができます。
Dirty あるオブジェクトが数度にわたって変更され、保存されていない状態は、「汚れた (dirty)」状態です。ActiveModel::Dirtyモジュールを使うと、オブジェクトで変更が生じたかどうかを検出できます。属性名に基づいたアクセサメソッドも使えます。
Validations ActiveModel::Validationsモジュールを追加すると、クラスオブジェクトをActive Recordスタイルで検証できます。
Naming ActiveModel::Namingは、命名やルーティングの管理を支援するクラスメソッドを多数追加します。
Model ActiveModel::Modelを追加すると、Action PackやAction Viewと連携する機能をすぐに使えるようになります。ActiveModel::Modelをincludeすると、以下のような機能を使えるようになります。
Serialization オブジェクトに基本的なシリアライズ機能を提供します。シリアライズの対象となる属性を含む属性ハッシュを1つ宣言する必要があります。属性は文字列でなければならず、シンボルは使えません。
ActiveModel::Serializers Active Modelは、JSONシリアライズ/デシリアライズ用のActiveModel::Serializers::JSONモジュールも提供しています。このモジュールは前述のActiveModel::Serializationモジュールを自動でincludeします。
Translation ActiveModel::Translationは、オブジェクトとRails国際化(i18n)フレームワーク間の統合機能を提供します。
Lintテスト ActiveModel::Lint::Testsを用いて、オブジェクトがActive Model APIに準拠しているかどうかをテストできます。
SecurePassword ActiveModel::SecurePasswordは、任意のパスワードを暗号化して安全に保存する手段を提供します。このモジュールをincludeすると、バリデーション機能を備えたpasswordアクセサを定義するhas_secure_passwordクラスメソッドがデフォルトで提供されます。
0
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
0
0