ActiveModel::Errorsについて
ActiveModel::Errors
は、Ruby on RailsのActiveModel
モジュール内のクラスで、モデルオブジェクト上のエラーメッセージを保持および管理するためのもの。主にActiveRecordモデルのバリデーションエラーを取り扱う際に使用されるが、ActiveRecordに依存しないモデルでも使用することができる。
主な特徴と使用方法
1. エラーの追加
add
メソッドを使用して、特定の属性にエラーメッセージを追加できる。
errors.add(:name, "can't be blank")
2. エラーの存在チェック
- any?メソッドでモデルにエラーが存在するかを確認できます。
- include?(attribute)で特定の属性にエラーが存在するかを確認できます。
3. エラーメッセージの取得
- full_messagesで全てのエラーメッセージの配列を取得できる。
- []メソッドで指定した属性のエラーメッセージの配列を取得できる。
errors[:name] # => ["can't be blank"]
4. エラーのクリア
clear
メソッドで全てのエラーメッセージを削除できる。
5. 詳細なエラー情報
details
メソッドを使用してエラーの詳細情報(エラータイプや追加のオプション)を取得できる。
使用例
class User < ApplicationRecord
validates :name, presence: true
end
user = User.new(name: "")
user.valid? # => false
user.errors.full_messages # => ["Name can't be blank"]