Railsドキュメント

モデル(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

ソースコード