Rails PaperTrail版本控制

时间:2012-11-29 12:36:02

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

我正在使用Paper Trail gem来修改我的一个模型。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

正如您在paper_trail/has_paper_trail.rb#L65中所看到的,它仅适用于三个默认事件create, update, destroy。一种可能的解决方法是在update方法中触发approve事件,您可能已在该方法中执行此操作。

# in your model
def approve!
  self.approved = true
  save
end