【发布时间】:2015-04-07 21:46:09
【问题描述】:
我正在将 paper_trail gem 用于博客系统来存储文章的版本。但是,我不需要在文章被销毁后保留它的任何版本。
如何在模型实例被销毁时删除它的所有版本?我只在文档中看到了一种全局删除版本的方法。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 paper-trail-gem
我正在将 paper_trail gem 用于博客系统来存储文章的版本。但是,我不需要在文章被销毁后保留它的任何版本。
如何在模型实例被销毁时删除它的所有版本?我只在文档中看到了一种全局删除版本的方法。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 paper-trail-gem
before_destroy do
self.versions.destroy_all
end
默认情况下has_paper_trail 创建has_many :versions 关联。所以你可以很容易地摧毁它们。但请确保在您的模型中有这个:
has_paper_trail on: [:create, :update] #because you dont want to keep record for destroy event.
【讨论】:
delete_all,因为我怀疑你是否希望运行回调或验证