class ActiveModel::EachValidator 
        Active Model EachValidator
EachValidator is a validator which iterates through the attributes given in the options hash invoking the validate_each method passing in the record, attribute, and value.
All Active Model validations are built on top of this validator.
Inherits From
- 
          class
          
ActiveModel::Validator  
Attributes
| [R] | attributes | 
            
Public class methods
Returns a new validator instance. All options will be available via the options reader, however the :attributes option will be removed and instead be made available through the attributes reader.
Source code GitHub
# File activemodel/lib/active_model/validator.rb, line 140
def initialize(options)
  @attributes = Array(options.delete(:attributes))
  raise ArgumentError, ":attributes cannot be blank" if @attributes.empty?
  super
  check_validity!
end
            Public instance methods
Hook method that gets called by the initializer allowing verification that the arguments supplied are valid. You could for example raise an ArgumentError when invalid options are supplied.
Source code GitHub
# File activemodel/lib/active_model/validator.rb, line 168
def check_validity!
end
            Performs validation on the supplied record. By default this will call validate_each to determine validity therefore subclasses should override validate_each with validation logic.
Source code GitHub
# File activemodel/lib/active_model/validator.rb, line 150
def validate(record)
  attributes.each do |attribute|
    value = record.read_attribute_for_validation(attribute)
    next if (value.nil? && options[:allow_nil]) || (value.blank? && options[:allow_blank])
    value = prepare_value_for_validation(value, record, attribute)
    validate_each(record, attribute, value)
  end
end
            Override this method in subclasses with the validation logic, adding errors to the records errors array where necessary.
Source code GitHub
# File activemodel/lib/active_model/validator.rb, line 161
def validate_each(record, attribute, value)
  raise NotImplementedError, "Subclasses must implement a validate_each(record, attribute, value) method"
end