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