悲观锁定失败

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 用于乐观锁定,您还使用悲观锁定将 findlock 链接起来。 Rails 对两者感到困惑 - 选择一个或另一个。