悲观锁定失败
Pessimistic locking fails
我的控制器中有以下代码:
Item.transaction do
item = JobDistribution.lock(true).find(params[:id])
item.update_attributes(status: JobDistribution.statuses[:processing])
respond_to do |format|
format.json { render :json => "object processing", status: :success }
end
end
但是当我 运行 代码时出现错误:
Attempted to update a stale object: Item
我不明白为什么,我按照rails文档。
lock_version
用于乐观锁定,您还使用悲观锁定将 find
从 lock
链接起来。 Rails 对两者感到困惑 - 选择一个或另一个。
我的控制器中有以下代码:
Item.transaction do
item = JobDistribution.lock(true).find(params[:id])
item.update_attributes(status: JobDistribution.statuses[:processing])
respond_to do |format|
format.json { render :json => "object processing", status: :success }
end
end
但是当我 运行 代码时出现错误:
Attempted to update a stale object: Item
我不明白为什么,我按照rails文档。
lock_version
用于乐观锁定,您还使用悲观锁定将 find
从 lock
链接起来。 Rails 对两者感到困惑 - 选择一个或另一个。