[英]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.