2011-02-11 44 views
5

我有一个由回形针管理的几个不同图像附件的模型。最近,我们改变了模型的行为,以便可以使用acts_as_paranoid进行软删除和恢复。一切都很好,除了当我们软删除模型时,回形针也会删除附件。如何防止回形针从acts_as_paranoid模型中删除附件?

我已经看过回形针文档和代码,我没有看到一个明显的方法来规避这一点。我希望能够告诉回形针忽略模型上的删除回调并保持附件?

回答

7

回形针现在有一个preserve_files选项。现在应该不需要覆盖。

文件保留为软删除

一个选项可用来保存,以便与软删除的模型发挥很好的附件。 (acts_as_paranoid,妄想等)

has_attached_file :some_attachment, { 
    :preserve_files => "true", 
} 

这将防止some_attachment被消灭了当模特被破坏,因此当对象稍后恢复它仍然存在。

https://github.com/thoughtbot/paperclip#file-preservation-for-soft-delete

+0

真棒!感谢您更新此内容(我很抱歉花了这么长时间回来看看它)。 – 2013-03-12 21:56:47

2

疯了多少次,你找到你自己的问题后,你问问题的答案。如果有其他人遇到同样的问题,我可以放在这里,或者有人可以有更好的解决方案。对我来说有效的是重写回形针回调before_destroy回调的方法。我把它放到我的代码中,它现在保留了我的附件,所以他们在那里,如果我以后取消删除模型。

protected 

    def destroy_attached_files 
    logger.error "-------------- This is me NOT destroying my attachments" 
    end