繁体   English   中英

Ruby on Rails:什么是陈旧对象及其功能?

[英]Ruby on Rails: What is stale object and it's features?

在我的应用程序中,我收到错误,因为无法更新过时的对象。 我不知道这个对象。 何时创建以及为什么将其称为陈旧对象。 我想知道。 是用在 Only in ROR 还是其他语言也用,这个对象和目的?

根据文档: http : //api.rubyonrails.org/classes/ActiveRecord/StaleObjectError.html

陈旧对象异常的原因是:

Record is stale when it's being saved in another query after instantiation, for example, when two users edit the same wiki page and one starts editing and saves the page before the other.

解决方案:为避免此异常,请使用锁定系统: http : //api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html

在我的应用程序中,多个线程能够编辑相同的工作 -> 版本 -> 元素记录。 其检测误差并提高合适的误差。

我通常会处理错误:

我打印了一条 Flash 消息,例如“抱歉,请稍后再试,其他人正在编辑此工作版本元素”。

        element.lock_version = Document::Element.find(element.id).lock_version
        element.save!

例如,如检测到一次编辑更改了元素的类型,而另一次编辑更改了不同创建者的元素名称,则应将两条记录的代码合并一次保存。

通常,我曾经使用 element.reload 来获取元素的新版本。

工作正常!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM