使用 paper_trail gem 如何跳过零和空白之间的变化?

Ale*_*vik 5 ruby activerecord ruby-on-rails paper-trail-gem

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

我使用https://github.com/airblade/paper_trail来记录几个ActiveRecord对象中的数据更改。从我的客户的角度来看,某些更改是无用的,因此我需要忽略nilblank(空字符串)之间的所有更改。

paper_trail好像没有这样的选择。您可以使用:skip选项跳过某些字段。您能否传入一个“决定”有条件地跳过更改的 Proc?

Hie*_*ham 2

您可以添加一个过程来定义是否应保存新版本,代码应为:

class ExampleModel < ActiveRecord::Base
  has_paper_trail :if => Proc.new { |t| t.attr_1.present? && t.attr_2.present? }
end
Run Code Online (Sandbox Code Playgroud)

顺便:unless也支持一下!这适用于 PaperTrail >= 4.0