我使用PaperTrail尝试查找Book模型特定实例的历史记录:
irb(main):025:0> PaperTrail::Version.where(item_type: "Book", item_id: "7401738")
=> #<ActiveRecord::Relation [#<PaperTrail::Version id: 9228142, item_type: "Book", item_id: 7401738, event: "create", whodunnit: "1156", object: nil, created_at: "2014-08-25 16:51:55">]>
从这里,我在实例上看到了一个创建事件但没有其他事件。
然而,它已不复存在:
irb(main):023:0> Book.find(7401738)
=> ActiveRecord::RecordNotFound: Couldn't find Book with id=7401738
那么,我错过了什么?如果没有在PaperTrail中创建记录,我的实例是如何消失的?
答案 0 :(得分:0)
有一些事情可以阻止PaperTrail跟踪销毁事件。例如,如果您只在模型中指定了某些事件。 has_paper_trail
的默认行为是跟踪更新,创建和销毁
坏:
class Book < ActiveRecord::Base
has_paper_trail :on => [:update, :create]
end
好:
class Book < ActiveRecord::Base
has_paper_trail # OR :on => [:destroy]
end
此外,如果您的图书模型中有关联,并且通过这些关联删除了图书,PaperTrail可能会遇到问题。有关详细信息,请查看他们的associations section。