aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2016-04-23 17:27:09 -0600
committerSean Griffin <sean@seantheprogrammer.com>2016-04-23 17:27:09 -0600
commit17668cf5284e8d1682b9c8e9318b452519bb7e42 (patch)
tree094c89a2d6f777c9788f3fe0d61e0392111959b2
parentaa598f4f399c777cfda526e7cf229f3bcb4f7d9b (diff)
parent210729c4cc05eae875b1e990c5bce39dee23e8f1 (diff)
downloadrails-17668cf5284e8d1682b9c8e9318b452519bb7e42.tar.gz
rails-17668cf5284e8d1682b9c8e9318b452519bb7e42.tar.bz2
rails-17668cf5284e8d1682b9c8e9318b452519bb7e42.zip
Merge pull request #24703 from vipulnsward/24695-handle-nils
Followup of #15771
-rw-r--r--activerecord/lib/active_record/locking/optimistic.rb4
-rw-r--r--activerecord/test/cases/locking_test.rb6
2 files changed, 10 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
diff --git a/activerecord/test/cases/locking_test.rb b/activerecord/test/cases/locking_test.rb
index 6c59d7337a..9fc0041892 100644
--- a/activerecord/test/cases/locking_test.rb
+++ b/activerecord/test/cases/locking_test.rb
@@ -169,6 +169,12 @@ class OptimisticLockingTest < ActiveRecord::TestCase
assert_equal 1, p1.lock_version
end
+ def test_lock_new_when_explicitly_passing_nil
+ p1 = Person.new(:first_name => 'anika', lock_version: nil)
+ p1.save!
+ assert_equal 0, p1.lock_version
+ end
+
def test_touch_existing_lock
p1 = Person.find(1)
assert_equal 0, p1.lock_version