在Rails中使用乐观锁,不允许在控制台中修改记录

时间:2019-05-29 07:07:06

标签: ruby-on-rails locking optimistic

我正在研究数据库锁定,以确保在多用户参与下进行安全的数据事务。

机器已安装乘客。

添加“ lock_version”(整数)后,不再可以通过控制台修改记录。

比方说

lesson = Lesson.find(1)
lesson.start_time = Time.now
lesson.save 

=> then, ActiveRecord::StaleObjectError: Attempted to update a stale object: Lesson

但是,极少有机会保存一列,这让我很困惑。

rails版本是4.2.8

非常感谢许多想法..

最佳

1 个答案:

答案 0 :(得分:0)

所以事实证明,为了使用乐观锁,我应该添加具有初始值0(整数)而不是null的lock_version。尽管在Rails控制台中记录显示为0,但是在数据库中它实际上为null。 !