我查看了how to store meta data for a paper trail versioned object,这似乎很容易。问题是我希望能够在不对对象进行任何实际更改的情况下存储该元数据。调用.save或.touch或仅使用.update_attributes!(:updated_at => Time.now)不会创建新版本。
有谁知道一种方法来强制纸张追踪来存储没有任何更改但具有元数据的版本?
最佳答案
这是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