簡體   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