aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/locking
diff options
context:
space:
mode:
authorVipul A M <vipulnsward@gmail.com>2016-04-24 04:01:18 +0530
committerVipul A M <vipulnsward@gmail.com>2016-04-24 04:01:18 +0530
commit210729c4cc05eae875b1e990c5bce39dee23e8f1 (patch)
treeff418e3a878ef7bc0a8e47c307c8476670c8378a /activerecord/lib/active_record/locking
parentc9c5788a527b70d7f983e2b4b47e3afd863d9f48 (diff)
downloadrails-210729c4cc05eae875b1e990c5bce39dee23e8f1.tar.gz
rails-210729c4cc05eae875b1e990c5bce39dee23e8f1.tar.bz2
rails-210729c4cc05eae875b1e990c5bce39dee23e8f1.zip
Followup of #15771
Make sure we handle explicitly passed nil's to lock_version as well. An explicitly passed nil value is now converted to 0 on LockingType, so that we don't end up with ActiveRecord::StaleObjectError in update record optimistic locking Fixes #24695
Diffstat (limited to 'activerecord/lib/active_record/locking')
-rw-r--r--activerecord/lib/active_record/locking/optimistic.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/locking/optimistic.rb b/activerecord/lib/active_record/locking/optimistic.rb
index 2336d23a1c..1040327a5d 100644
--- a/activerecord/lib/active_record/locking/optimistic.rb
+++ b/activerecord/lib/active_record/locking/optimistic.rb
@@ -190,6 +190,10 @@ module ActiveRecord
super.to_i
end
+ def serialize(value)
+ super.to_i
+ end
+
def init_with(coder)
__setobj__(coder['subtype'])
end