19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'activemodel/lib/active_model/validations/comparison.rb', line 19
def validate_each(record, attr_name, value)
options.slice(*COMPARE_CHECKS.keys).each do |option, raw_option_value|
option_value = resolve_value(record, raw_option_value)
if value.nil? || value.blank?
return record.errors.add(attr_name, :blank, **error_options(value, option_value))
end
unless value.public_send(COMPARE_CHECKS[option], option_value)
record.errors.add(attr_name, option, **error_options(value, option_value))
end
rescue ArgumentError => e
record.errors.add(attr_name, e.message)
end
end
|