aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-01-23 10:57:05 +0100
committerYves Senn <yves.senn@gmail.com>2013-03-05 14:00:41 +0100
commit4b7a33e1423c207b25da7e34d8ea45c71ba12298 (patch)
tree92b26475a696f6915f83dbcc03a0a9cfa45714d2 /activerecord/lib/active_record
parentee444697073b123bbf0e36511b581f7df7419636 (diff)
downloadrails-4b7a33e1423c207b25da7e34d8ea45c71ba12298.tar.gz
rails-4b7a33e1423c207b25da7e34d8ea45c71ba12298.tar.bz2
rails-4b7a33e1423c207b25da7e34d8ea45c71ba12298.zip
assigning '0.0' to a nullable numeric column does not make it dirty
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/attribute_methods/dirty.rb6
1 files changed, 5 insertions, 1 deletions
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