ActiveModel::Modelモジュール
モデルのように振る舞う機能各種をつかえるようになる
バリデーションを設定して実行できる機能
form_withとやりとりする機能
newメソッドでattributesと一緒に初期化する機能 ほか
FooFormObject.new(name: "iga", email: "
[email protected]",
terms_of_service: true)
class FooFormObject
include ActiveModel::Model
include ActiveModel::Attributes
attribute :name, :string
attribute :email, :string
attribute :terms_of_service, :boolean
validates :name, presence: true
validates :email, format: { with: URI::MailTo::EMAIL_REGEXP }
# URI::MailTo::EMAIL_REGEXPはRubyに定義されてるemail検証正規表現
validates :terms_of_service, acceptance: { allow_nil: false }
# acceptanceはチェックボックス確認用 https://railsguides.jp/active_record_validations.html#acceptance