如何强制papertrail存储仅包含元数据的对象

时间:2014-04-02 16:13:52

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

我已经查看了how to store meta data for a paper trail versioned object,这似乎很容易。问题是我希望能够存储该元数据而不对对象进行任何实际更改。调用.save或.touch或仅使用.update_attributes!(:updated_at => Time.now)不会创建新版本。

任何人都知道如何强制使用纸质记录来存储没有任何变更但有元数据的版本?

1 个答案:

答案 0 :(得分:2)

这是Papertrail的一个已知问题:

https://github.com/airblade/paper_trail/issues/329

来自问题:

  

因此触摸不会创建版本,因为它不像正常更新那样触发ActiveRecord :: Callbacks,而PaperTrail会从before_update回调生成更新版本。

目前似乎还没有办法配置Paper Trail自​​动执行此操作,但是有一个.touch_with_version方法可以显式调用一个实例,该实例将创建一个只有更新时间戳的新版本

https://github.com/airblade/paper_trail/blob/cd9233ba0be53c53ceb96be3cd23ece8254f4c5a/lib/paper_trail/has_paper_trail.rb#L263