aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute/user_provided_default.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2015-09-24 11:50:11 -0600
committerSean Griffin <sean@seantheprogrammer.com>2015-09-24 14:06:59 -0600
commit8e633e505880755e7e366ccec2210bbe2b5436e7 (patch)
tree3df446051d47c42cd6081a1449a27d57f9179f88 /activerecord/lib/active_record/attribute/user_provided_default.rb
parentadfb823af52d368fa4d88731a9809a314ad884ad (diff)
downloadrails-8e633e505880755e7e366ccec2210bbe2b5436e7.tar.gz
rails-8e633e505880755e7e366ccec2210bbe2b5436e7.tar.bz2
rails-8e633e505880755e7e366ccec2210bbe2b5436e7.zip
Clean up the implementation of AR::Dirty
This moves a bit more of the logic required for dirty checking into the attribute objects. I had hoped to remove the `with_value_from_database` stuff, but unfortunately just calling `dup` on the attribute objects isn't enough, since the values might contain deeply nested data structures. I think this can be cleaned up further. This makes most dirty checking become lazy, and reduces the number of object allocations and amount of CPU time when assigning a value. This opens the door (but doesn't quite finish) to improving the performance of writes to a place comparable to 4.1
Diffstat (limited to 'activerecord/lib/active_record/attribute/user_provided_default.rb')
-rw-r--r--activerecord/lib/active_record/attribute/user_provided_default.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute/user_provided_default.rb b/activerecord/lib/active_record/attribute/user_provided_default.rb
index e0bee8c17e..501590cf0e 100644
--- a/activerecord/lib/active_record/attribute/user_provided_default.rb
+++ b/activerecord/lib/active_record/attribute/user_provided_default.rb
@@ -16,7 +16,7 @@ module ActiveRecord
end
end
- def changed_in_place_from?(old_value)
+ def changed_from?(old_value)
super || changed_from?(database_default.value)
end