用于阅读的锁模型

时间:2014-08-26 13:11:52

标签: ruby-on-rails ruby rails-activerecord

ActiveRecord事务中,我需要一些方法来锁定记录/表以供读取,因此在执行事务时,用户无法从该表中进行选择。

基本上,我需要这样的东西

System.transaction do
  s = System.first
  # Something to lock the table or selected record for reading
  s.update_attributes(some_params)
end

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

看来你正在寻找Pessimistic Locking。您可以像范围一样使用lock方法。此外,您应该使用bang-version update_attributes!以便在出现问题时引发异常。

System.transaction do
  s = System.lock.first
  s.update_attributes!(some_params)
end