簡體   English   中英

跟蹤被破壞的物體

[英]Keeping track of destroyed objects

我搜索堆棧溢出類似的方法,但沒有找到任何東西,所以這里提出我的問題:

我需要能夠跟蹤對象上是否發生了破壞以及它發生的時間。 我也不需要整個對象只是它的id。

有沒有一個寶石可以做到這一點,還是需要在我的數據庫中處理這個?

應該使用觀察者模式

您需要創建一個觀察模型的模型:

class AuditObserver < ActiveRecord::Observer
  observe :account

  def after_destroy(account)
    p "#{account.id} destroyed"
  end
end

AuditObserver在此處觀察Account模型,並在帳戶被銷毀時打印出消息。

請記住,您需要將觀察者添加到配置( config/appplication.rb )中:

config.active_record.observers = :audit_observer

更新

如果你想在一段時間內擁有被破壞的對象,你可以使用rails3_acts_as_paranoid gem。

然后,您可以將刪除的帳戶提取為:

Account.deleted_after_time(time)

或者,您可以創建一個新模型( Audit ),然后可以將帶有時間戳的已銷毀ID插入該表。

如果您不介意保留記錄,可以使用偏執狂gem ,它會添加一個deleted_at時間戳並使用它來deleted_at模型范圍,因此默認情況下會排除已刪除的記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM