3

我已经研究了如何存储纸质追踪版本对象的元数据,这似乎很容易。问题是我希望能够在不对对象进行任何实际更改的情况下存储该元数据。调用 .save 或 .touch 或仅使用 .update_attributes!(:updated_at => Time.now) 不会创建新版本。

任何人都知道一种强制纸质记录存储没有任何更改但具有元数据的版本的方法吗?

4

1 回答 1

2

这是 Papertrail 中的一个已知问题:

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

从问题:

所以 touch 不会创建版本,因为它不会像正常更新那样触发 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

于 2014-06-03T23:22:35.440 回答