diff options
author | Roberto Vasquez Angel <robotex@robotex.de> | 2012-07-25 17:07:05 +0200 |
---|---|---|
committer | Steve Klabnik <steve@steveklabnik.com> | 2012-12-15 16:27:44 -0500 |
commit | d72a07f1d1478db9daed847eadb35bfd840674f6 (patch) | |
tree | a48970e3b40c23c23e52249f2a7a61f85fcf94d1 /activemodel/lib/active_model/validations/absence.rb | |
parent | c298ee403d60db6b082539c8dd4f95754034274d (diff) | |
download | rails-d72a07f1d1478db9daed847eadb35bfd840674f6.tar.gz rails-d72a07f1d1478db9daed847eadb35bfd840674f6.tar.bz2 rails-d72a07f1d1478db9daed847eadb35bfd840674f6.zip |
Add `ActiveModel::Validations::AbsenceValidator`, a validator to check the absence of attributes.
Add `ActiveModel::Errors#add_on_present` method. Adds error messages to present attributes.
Diffstat (limited to 'activemodel/lib/active_model/validations/absence.rb')
-rw-r--r-- | activemodel/lib/active_model/validations/absence.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/validations/absence.rb b/activemodel/lib/active_model/validations/absence.rb new file mode 100644 index 0000000000..6790554907 --- /dev/null +++ b/activemodel/lib/active_model/validations/absence.rb @@ -0,0 +1,31 @@ +module ActiveModel + module Validations + # == Active Model Absence Validator + class AbsenceValidator < EachValidator #:nodoc: + def validate(record) + record.errors.add_on_present(attributes, options) + end + end + + module HelperMethods + # Validates that the specified attributes are blank (as defined by + # Object#blank?). Happens by default on save. + # + # class Person < ActiveRecord::Base + # validates_absence_of :first_name + # end + # + # The first_name attribute must be in the object and it must be blank. + # + # Configuration options: + # * <tt>:message</tt> - A custom error message (default is: "must be blank"). + # + # There is also a list of default options supported by every validator: + # +:if+, +:unless+, +:on+ and +:strict+. + # See <tt>ActiveModel::Validation#validates</tt> for more information + def validates_absence_of(*attr_names) + validates_with AbsenceValidator, _merge_attributes(attr_names) + end + end + end +end |