add(attribute, message = :invalid, options = {})
Instance Public methods
Adds message
to the error messages on attribute
.
More than one error can be added to the same attribute
. If no
message
is supplied, :invalid
is assumed.
person.errors.add(:name) # => ["is invalid"] person.errors.add(:name, 'must be implemented') # => ["is invalid", "must be implemented"] person.errors.messages # => {:name=>["must be implemented", "is invalid"]}
If message
is a symbol, it will be translated using the
appropriate scope (see generate_message
).
If message
is a proc, it will be called, allowing for things
like Time.now
to be used within an error.
If the :strict
option is set to true
, it will
raise ActiveModel::StrictValidationFailed
instead of adding the error. :strict
option can also be set to
any other exception.
person.errors.add(:name, nil, strict: true) # => ActiveModel::StrictValidationFailed: name is invalid person.errors.add(:name, nil, strict: NameIsInvalid) # => NameIsInvalid: name is invalid person.errors.messages # => {}
Please login to continue.