我正在使用Paper Trail gem来修改我的一个模型。
它非常好用,我在记录版本时进行了改进,以便仅跟踪已批准产品的更新,这部分工作正常。
我还需要做的是在批准时捕获版本。当然,在批准时,我的已批准字段设置为false,因此它不会捕获版本。有谁知道我如何修改下面的产品模型中的线来实现这一目标?
has_paper_trail :on => [:update,:approve], :if => Proc.new { |p| p.approved == true }
编辑:似乎papertrail不适用于自定义控制器操作。任何人都可以验证吗?
答案 0 :(得分:0)
正如您在paper_trail/has_paper_trail.rb#L65
中所看到的,它仅适用于三个默认事件create, update, destroy
。一种可能的解决方法是在update
方法中触发approve
事件,您可能已在该方法中执行此操作。
# in your model
def approve!
self.approved = true
save
end