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.
- C
- N
- V
Attributes
[R] | attributes |
Class Public methods
new(options) Link
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.
Instance Public methods
check_validity!() Link
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.
validate(record) Link
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.
# File activemodel/lib/active_model/validator.rb, line 148 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
validate_each(record, attribute, value) Link
Override this method in subclasses with the validation logic, adding errors to the records errors
array where necessary.