0
我正在使用Paper Tram gem来创建我的模型之一版本。Rails Paper Trail版本号
它的工作原理非常好,当它在日志版本上进行改进以便跟踪已批准产品的更新时,这部分工作正常。
我还需要做的是捕获批准的版本。自然,在批准时,我的批准字段设置为false,因此它不会捕获版本。有谁知道我可以如何修改下面的产品模型中的线来实现这一目标?
has_paper_trail :on => [:update,:approve], :if => Proc.new { |p| p.approved == true }
编辑:它似乎papertrail不自定义控制器操作。任何人都可以验证吗?
我知道这可能不是最佳做法,但我的批准是在我的控制器内用'@product.approved = true @ product.save'处理的。然而,我是否认为'@ product.save'应该开始更新? – Raoot
邑,它应该激发 - 我猜'label_approved'和'p.approved'在你的代码中实际上是一样的吗?否则,这可能无法按预期工作 – krichard
啊,是的同一件事!现在编辑上面。批准操作确实正确地更新了批准的字段,但我猜测has_paper_trail正在处理before_update而不是之后,这对于在更改前记录版本是有意义的。 – Raoot