在删除模型时删除所有版本的paper_trail

Nic*_*ill 3 ruby-on-rails ruby-on-rails-3 paper-trail-gem

我正在使用paper_trail gem作为博客系统来存储文章的版本.但是,我不需要在文章被销毁后保留任何版本的文章.

如何销毁模型实例的所有版本?我只在文档中看到了一种全局删除版本的方法.

有任何想法吗?

Mun*_*sim 5

before_destroy do
  self.versions.destroy_all
end
Run Code Online (Sandbox Code Playgroud)

默认情况下has_paper_trail创建has_many :versions关联.所以你可以很容易地摧毁它们.但请确保您的模型中有以下内容:

 has_paper_trail on: [:create, :update]  #because you dont want to keep record for destroy event.
Run Code Online (Sandbox Code Playgroud)

  • 我猜你可以使用 `delete_all` 代替,因为我怀疑你是否想要运行回调或验证 (3认同)