Paper Trail显示了一个'创建'事件但没有匹配'销毁'

时间:2015-08-05 14:26:58

标签: ruby-on-rails activerecord paper-trail-gem

我使用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中创建记录,我的实例是如何消失的?

1 个答案:

答案 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