diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2013-03-05 05:15:22 -0800 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2013-03-05 05:15:22 -0800 |
commit | 09d1fb25c30149a04d756d80709a17f2912efb47 (patch) | |
tree | 2557417010edcc2b41f18f13a334f7ea452a9e23 /activerecord/test | |
parent | 5cf472e04398ac2c67236a41566d95c0287b34fa (diff) | |
parent | 4b7a33e1423c207b25da7e34d8ea45c71ba12298 (diff) | |
download | rails-09d1fb25c30149a04d756d80709a17f2912efb47.tar.gz rails-09d1fb25c30149a04d756d80709a17f2912efb47.tar.bz2 rails-09d1fb25c30149a04d756d80709a17f2912efb47.zip |
Merge pull request #9042 from senny/9034_float_0_0_is_always_dirty
Assigning '0.0' to a nullable numeric column does not make it dirty
Example:
product = Product.create price: 0.0
product.price = '0.0'
product.changed? # => false (this used to return true)
product.changes # => {} (this used to return { price: [0.0, 0.0] })
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/dirty_test.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/test/cases/dirty_test.rb b/activerecord/test/cases/dirty_test.rb index c7d2ba6073..7b2034dadf 100644 --- a/activerecord/test/cases/dirty_test.rb +++ b/activerecord/test/cases/dirty_test.rb @@ -243,6 +243,21 @@ class DirtyTest < ActiveRecord::TestCase assert !pirate.changed? end + def test_float_zero_to_string_zero_not_marked_as_changed + data = NumericData.new :temperature => 0.0 + data.save! + + assert_not data.changed? + + data.temperature = '0' + assert_empty data.changes + + data.temperature = '0.0' + assert_empty data.changes + + data.temperature = '0.00' + assert_empty data.changes + end def test_zero_to_blank_marked_as_changed pirate = Pirate.new |