From 4bf8ffc6516312e68fb0d2b4ac97505f8d0cf192 Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Thu, 12 Jun 2014 15:13:28 -0600 Subject: Detect in-place changes on mutable AR attributes We have several mutable types on Active Record now. (Serialized, JSON, HStore). We need to be able to detect if these have been modified in place. --- activerecord/test/cases/dirty_test.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'activerecord/test/cases/dirty_test.rb') diff --git a/activerecord/test/cases/dirty_test.rb b/activerecord/test/cases/dirty_test.rb index 87f24e32b2..5d6601a881 100644 --- a/activerecord/test/cases/dirty_test.rb +++ b/activerecord/test/cases/dirty_test.rb @@ -445,11 +445,20 @@ class DirtyTest < ActiveRecord::TestCase def test_save_should_store_serialized_attributes_even_with_partial_writes with_partial_writes(Topic) do topic = Topic.create!(:content => {:a => "a"}) + + assert_not topic.changed? + topic.content[:b] = "b" - #assert topic.changed? # Known bug, will fail + + assert topic.changed? + topic.save! + + assert_not topic.changed? assert_equal "b", topic.content[:b] + topic.reload + assert_equal "b", topic.content[:b] end end -- cgit v1.2.3