diff options
Diffstat (limited to 'activemodel/lib/active_model/errors.rb')
-rw-r--r-- | activemodel/lib/active_model/errors.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index 963e52bff3..b713e99e25 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -328,6 +328,19 @@ module ActiveModel end end + # Will add an error message to each of the attributes in +attributes+ that + # is present (using Object#present?). + # + # person.errors.add_on_present(:name) + # person.errors.messages + # # => { :name => ["must be blank"] } + def add_on_present(attributes, options = {}) + Array(attributes).flatten.each do |attribute| + value = @base.send(:read_attribute_for_validation, attribute) + add(attribute, :not_blank, options) if value.present? + end + end + # Returns +true+ if an error on the attribute with the given message is # present, +false+ otherwise. +message+ is treated the same as for +add+. # |