lib/active_model/validations/numericality.rb in activemodel-5.2.0 vs lib/active_model/validations/numericality.rb in activemodel-5.2.1.rc1
- old
+ new
@@ -17,12 +17,14 @@
end
end
end
def validate_each(record, attr_name, value)
- before_type_cast = :"#{attr_name}_before_type_cast"
+ came_from_user = :"#{attr_name}_came_from_user?"
- raw_value = record.send(before_type_cast) if record.respond_to?(before_type_cast) && record.send(before_type_cast) != value
+ if record.respond_to?(came_from_user) && record.public_send(came_from_user)
+ raw_value = record.read_attribute_before_type_cast(attr_name)
+ end
raw_value ||= value
if record_attribute_changed_in_place?(record, attr_name)
raw_value = value
end