我使用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
答案 0 :(得分:0)
右。你必须明白我对铁轨的魔力还是比较新的。
显然有is a gem根据架构自动将验证器添加到rails模型。这就是阻止paper_trail gem为我工作的原因。