使用paper_trail gem如何跳过nil和blank之间的变化?

时间:2016-08-15 16:00:55

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

TL; DR:如何在paper_trail中跳过nilblank之间的更改?

我使用https://github.com/airblade/paper_trail来记录多个ActiveRecord对象中的数据更改。有些变化对我的客户来说毫无用处。观点,所以我需要忽略nilblank之间的所有变化(空字符串)。

paper_trail似乎没有这样的选择。您可以使用:skip选项跳过某些字段。你可以通过一个会决定"决定"有条件地跳过更改?

1 个答案:

答案 0 :(得分:2)

你可以添加一个proc来定义一个新版本应该保存与否,代码应该是:

class ExampleModel < ActiveRecord::Base
  has_paper_trail :if => Proc.new { |t| t.attr_1.present? && t.attr_2.present? }
end

顺便提一下:unless!这适用于PaperTrail&gt; = 4.0