diff --git a/activerecord/lib/active_record/attribute_methods/dirty.rb b/activerecord/lib/active_record/attribute_methods/dirty.rb index a85b6b3b826b1b165fd2158519ed6a01910df9b5..a24b4b7839a86890438231e1dc46a831edc40b42 100644 --- a/activerecord/lib/active_record/attribute_methods/dirty.rb +++ b/activerecord/lib/active_record/attribute_methods/dirty.rb @@ -78,7 +78,7 @@ def update(*) def _field_changed?(attr, old, value) if column = column_for_attribute(attr) if column.number? && (changes_from_nil_to_empty_string?(column, old, value) || - changes_from_zero_to_string?(column, old, value)) + changes_from_zero_to_string?(old, value)) value = nil else value = column.type_cast(value) @@ -96,7 +96,7 @@ def changes_from_nil_to_empty_string?(column, old, value) column.null && (old.nil? || old == 0) && value.blank? end - def changes_from_zero_to_string?(column, old, value) + def changes_from_zero_to_string?(old, value) # For columns with old 0 and value non-empty string old == 0 && value.present? && value != '0' end