paper_trail gem - 无法跟踪销毁事件

时间:2016-02-05 08:43:11

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

我使用paper_trail gem作为rails项目。 (ruby 2.3,rails 4.2.5)

paper_trail并非在我的rails应用中跟踪:destroy个事件。

经过调查,destroy事件的版本模型似乎没有保存,因为它与模型有关系,它应该跟踪,现在不存在(我们已经存在)记录一个毁灭事件,因此此刻该模型是不存在的。)

以下是我试图落后于此的方法:

PaperTrail有一个名为Version的模型。当我设置一个断点at the point时,应该保存Version事件和destroy事件,我可以看到模型没有验证。当我尝试在那时保存版本模型时,我收到此消息:

ActiveRecord::RecordInvalid: Validation failed: Item can't be blank

当我查看哪些验证器属于版本模型时,我可以看到:item是一个经过验证的属性:

[<ActiveRecord::Validations::PresenceValidator:0x007fe90cb3be40 @attributes=[:event], @options={}>,
 <ActiveRecord::Validations::PresenceValidator:0x007fe9044c82a0 @attributes=[:event], @options={}>,
 <ActiveRecord::Validations::PresenceValidator:0x007fe9044cbce8 @attributes=[:item_type], @options={}>,
 <ActiveRecord::Validations::PresenceValidator:0x007fe90e022f20 @attributes=[:item], @options={}>]

我有什么东西在这里失踪吗?我的activerecord模型非常简单:

class ClientNote < ActiveRecord::Base
  has_paper_trail
end

1 个答案:

答案 0 :(得分:0)

右。你必须明白我对铁轨的魔力还是比较新的。

显然有is a gem根据架构自动将验证器添加到rails模型。这就是阻止paper_trail gem为我工作的原因。