From 4b7a33e1423c207b25da7e34d8ea45c71ba12298 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Wed, 23 Jan 2013 10:57:05 +0100 Subject: assigning '0.0' to a nullable numeric column does not make it dirty --- activerecord/lib/active_record/attribute_methods/dirty.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/attribute_methods/dirty.rb b/activerecord/lib/active_record/attribute_methods/dirty.rb index 616ae1631f..6315dd9549 100644 --- a/activerecord/lib/active_record/attribute_methods/dirty.rb +++ b/activerecord/lib/active_record/attribute_methods/dirty.rb @@ -107,7 +107,11 @@ module ActiveRecord def changes_from_zero_to_string?(old, value) # For columns with old 0 and value non-empty string - old == 0 && value.is_a?(String) && value.present? && value != '0' + old == 0 && value.is_a?(String) && value.present? && non_zero?(value) + end + + def non_zero?(value) + value !~ /\A0+(\.0+)?\z/ end end end -- cgit v1.2.3