diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2011-10-25 17:22:52 -0500 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2011-10-25 17:22:52 -0500 |
commit | 5daf07704ad21d885661216281ffc48b6ea6adfb (patch) | |
tree | 1e032663a6530334ec70408c1684800af404b582 | |
parent | 85b64f98d100d37b3a232c315daa10fad37dccdc (diff) | |
download | rails-5daf07704ad21d885661216281ffc48b6ea6adfb.tar.gz rails-5daf07704ad21d885661216281ffc48b6ea6adfb.tar.bz2 rails-5daf07704ad21d885661216281ffc48b6ea6adfb.zip |
Fix that changing a store should mark the store attribute as changed
-rw-r--r-- | activerecord/lib/active_record/store.rb | 1 | ||||
-rw-r--r-- | activerecord/test/cases/store_test.rb | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/store.rb b/activerecord/lib/active_record/store.rb index d5910df891..8cc84f81d0 100644 --- a/activerecord/lib/active_record/store.rb +++ b/activerecord/lib/active_record/store.rb @@ -37,6 +37,7 @@ module ActiveRecord Array(keys).flatten.each do |key| define_method("#{key}=") do |value| send(store_attribute)[key] = value + send("#{store_attribute}_will_change!") end define_method(key) do diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb index 3d056d93b6..3f7a965cfb 100644 --- a/activerecord/test/cases/store_test.rb +++ b/activerecord/test/cases/store_test.rb @@ -26,4 +26,9 @@ class StoreTest < ActiveRecord::TestCase assert 'graeters', @john.reload.settings[:icecream] end + + test "updating the store will mark it as changed" do + @john.color = 'red' + assert @john.settings_changed? + end end |