モデル(model)
シンボルまたはメソッドのエラーの配列
説明
シンボルまたはメソッドのエラーの配列
使い方
モデル.errors[属性]
例
person.errors[:name]
#=> ["cannot be nil"]
person.errors['name']
#=> ["cannot be nil"]
ソースコード
すべてのエラー属性名
説明
すべてのエラー属性名
使い方
モデル.errors.attribute_names()
例
person.errors.attribute_names
#=> [:name]
ソースコード
新しいエラーを追加
説明
新しいエラーを追加
使い方
モデル.errors.add(属性, タイプ=:invalid, オプション引数)
例
新しいエラーを追加
person.errors.add(:name)
# Adds <#ActiveModel::Error attribute=name, type=invalid>
typeを指定
person.errors.add(:name, :not_implemented, message: "must be implemented")
# Adds <#ActiveModel::Error attribute=name, type=not_implemented,
options={:message=>"must be implemented"}>
ソースコード
指定された属性とタイプに一致するエラーが発生したか
説明
指定された属性とタイプに一致するエラーが発生したか
使い方
モデル.errors.added?(属性, タイプ=:invalid, オプション={})
例
person.errors.add :name, :blank
person.errors.added? :name, :blank
# true
ソースコード
指定した属性のエラーを削除
説明
指定した属性のエラーを削除
使い方
モデル.errors.delete(属性, タイプ=nil, オプション引数)
例
person.errors[:name]
#=> ["cannot be nil"]
person.errors.delete(:name)
#=> ["cannot be nil"]
person.errors[:name]
#=> []
ソースコード
指定された属性の完全なエラーメッセージを取得
説明
指定された属性の完全なエラーメッセージを取得
使い方
モデル.errors.full_message(属性, メッセージ)
例
person.errors.full_message(:name, 'is invalid')
#=> "Name is invalid"
ソースコード
すべてのエラーメッセージを配列で取得
説明
すべてのエラーメッセージを配列で取得
使い方
モデル.errors.full_messages()
例
person = Person.create(address: '123 First St.')
person.errors.full_messages
#=> ["Name is too short (minimum is 5 characters)", "Name can't be blank", "Email can't be blank"]
ソースコード
指定した属性のすべてのエラーメッセージを配列で取得
説明
指定した属性のすべてのエラーメッセージを配列で取得
使い方
モデル.errors.full_messages_for(属性)
例
person = Person.create()
person.errors.full_messages_for(:name)
#=> ["Name is too short (minimum is 5 characters)", "Name can't be blank"]
ソースコード
エラーのJSON
説明
エラーのJSON
使い方
モデル.errors.as_json(オプション=nil)
例
エラーのJSON
person.errors.as_json
#=> {:name=>["cannot be nil"]}
full_messages
person.errors.as_json(full_messages: true)
#=> {:name=>["name cannot be nil"]}
ソースコード
各エラーオブジェクトをイテレート
説明
各エラーオブジェクトをイテレート
使い方
モデル.errors.each(ブロック引数)
例
person.errors.add(:name, :too_short, count: 2)
person.errors.each do |error|
# Will yield <#ActiveModel::Error attribute=name, type=too_short, options={:count=>3}>
end
ソースコード
エラーメッセージをデフォルトのスコープで翻訳
説明
エラーメッセージをデフォルトのスコープで翻訳
使い方
モデル.errors.generate_message(属性, タイプ=:invalid, オプション={})
例
person = Person.create()
person.errors.full_messages_for(:name)
#=> ["Name is too short (minimum is 5 characters)", "Name can't be blank"]
ソースコード
属性のHashとErrorオブジェクトの配列を取得
説明
属性のHashとErrorオブジェクトの配列を取得
使い方
モデル.errors.group_by_attribute()
例
person.errors.group_by_attribute
#=> {:name=>[<#ActiveModel::Error>, <#ActiveModel::Error>]}
ソースコード
指定した属性が含まれているか
説明
指定した属性が含まれているか
使い方
モデル.errors.include?(属性)
例
person.errors.messages
#=> {:name=>["cannot be nil"]}
person.errors.include?(:name)
#=> true
person.errors.include?(:age)
#=> false
ソースコード
属性のHashとそのエラーメッセージの配列を取得
説明
属性のHashとそのエラーメッセージの配列を取得
使い方
モデル.errors.messages()
例
person.errors.messages()
ソースコード
指定された属性のすべてのエラーメッセージの配列を取得
説明
指定された属性のすべてのエラーメッセージの配列を取得
使い方
モデル.errors.messages_for(属性)
例
person = Person.create()
person.errors.messages_for(:name)
#=> ["is too short (minimum is 5 characters)", "can't be blank"]
ソースコード
指定されたタイプの属性でエラーが発生したか
説明
指定されたタイプの属性でエラーが発生したか
使い方
モデル.errors.of_kind?(属性, タイプ=:invalid)
例
person.errors.add :age
person.errors.add :name, :too_long, { count: 25 }
person.errors.of_kind? :age
#=> true
person.errors.of_kind? :name
#=> false
person.errors.of_kind? :name, :too_long
#=> true
person.errors.of_kind? :name, "is too long (maximum is 25 characters)"
#=> true
person.errors.of_kind? :name, :not_too_long
#=> false
person.errors.of_kind? :name, "is too long"
#=> false
ソースコード
属性のHashとそのエラーメッセージを取得
説明
属性のHashとそのエラーメッセージを取得
使い方
モデル.errors.to_hash(完全なメッセージか=false)
例
person.errors.to_hash
#=> {:name=>["cannot be nil"]}
person.errors.to_hash(true)
#=> {:name=>["name cannot be nil"]}
ソースコード
属性、タイプ、オプションに一致するエラーを検索
説明
属性、タイプ、オプションに一致するエラーを検索
使い方
モデル.errors.where(属性, タイプ=nil, オプション引数)
例
person.errors.where(:name)
#=> all name errors.
person.errors.where(:name, :too_short)
#=> all name errors being too short
person.errors.where(:name, :too_short, minimum: 2)
#=> all name errors being too short and minimum is 2