aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJakob Skjerning <jakob@mentalized.net>2016-09-14 17:07:15 +0200
committerJakob Skjerning <jakob@mentalized.net>2016-09-14 17:37:04 +0200
commite835596ae882e748e452e52131c2a4244336660b (patch)
tree766ab99a4c2f407fc3c7c8a19f13fe4cd724f75a /activerecord/lib/active_record
parent1d7b00d6072e4749e90fb4bc8307dc06b052848d (diff)
downloadrails-e835596ae882e748e452e52131c2a4244336660b.tar.gz
rails-e835596ae882e748e452e52131c2a4244336660b.tar.bz2
rails-e835596ae882e748e452e52131c2a4244336660b.zip
Clear attribute changes after handling locking
Without this the changes to the lock version column will stick around even after `touch` returns. Before: model.touch model.changes # => {"lock_version"=>[0, "1"]} After: model.touch model.changes # {}
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/persistence.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb
index a04ef2e263..978fb27cab 100644
--- a/activerecord/lib/active_record/persistence.rb
+++ b/activerecord/lib/active_record/persistence.rb
@@ -498,7 +498,6 @@ module ActiveRecord
changes[column] = write_attribute(column, time)
end
- clear_attribute_changes(changes.keys)
primary_key = self.class.primary_key
scope = self.class.unscoped.where(primary_key => _read_attribute(primary_key))
@@ -508,6 +507,7 @@ module ActiveRecord
changes[locking_column] = increment_lock
end
+ clear_attribute_changes(changes.keys)
result = scope.update_all(changes) == 1
if !result && locking_enabled?