2013-06-19 39 views
2

我正在使用paper_trail gem作爲博客系統來存儲文章的版本。不過,我不需要在文章銷燬後保留任何版本的文章。刪除模型時刪除所有版本的paper_trail

如何在銷燬模型實例時刪除所有版本的模型實例?我只能在文檔中看到全局刪除版本的方法。

任何想法?

回答

4
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. 
+1

爲什麼你做self.versions.collect(&:銷燬)而不是self.versions.destroy_all? –

+0

根據您的建議更改:) – Muntasim

+0

哦,好吧!我實際上並不知道是否有區別。 –