From 9196b93111b5f89f030b089d32d7a3a9d49b0df9 Mon Sep 17 00:00:00 2001 From: kennyj Date: Tue, 3 Jul 2012 01:29:37 +0900 Subject: Don't mark the store as changed if an attribute isn't changed. --- activerecord/lib/active_record/store.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/store.rb b/activerecord/lib/active_record/store.rb index d13491502e..2af5b02fb7 100644 --- a/activerecord/lib/active_record/store.rb +++ b/activerecord/lib/active_record/store.rb @@ -58,8 +58,11 @@ module ActiveRecord keys.each do |key| define_method("#{key}=") do |value| initialize_store_attribute(store_attribute) - send(store_attribute)[key] = value - send :"#{store_attribute}_will_change!" + attribute = send(store_attribute) + if value != attribute[key] + attribute[key] = value + send :"#{store_attribute}_will_change!" + end end define_method(key) do -- cgit v1.2.3