0

我正在使用 Paper Trail gem 对我的模型之一进行版本化。

它工作得非常好,我在它记录版本时进行了改进,以便它只跟踪批准产品的更新,这部分工作正常。

我还需要做的是捕获批准的版本。自然,在批准时,我的已批准字段设置为 false,因此它不会捕获版本。有谁知道我如何修改下面我的产品模型中的行来实现这一点?

has_paper_trail :on => [:update,:approve], :if => Proc.new { |p| p.approved == true }

编辑:似乎 papertrail 不适用于自定义控制器操作。任何人都可以验证吗?

4

1 回答 1

0

如您所见,paper_trail/has_paper_trail.rb#L65它仅适用于三个默认事件create, update, destroy。一种可能的解决方法是update在您的方法中触发事件,approve您可能已经在这样做了。

# in your model
def approve!
  self.approved = true
  save
end
于 2012-11-29T13:23:56.147 回答