我有一个由回形针管理的几个不同图像附件的模型。最近,我们改变了模型的行为,以便可以使用acts_as_paranoid进行软删除和恢复。一切都很好,除了当我们软删除模型时,回形针也会删除附件。如何防止回形针从acts_as_paranoid模型中删除附件?
我已经看过回形针文档和代码,我没有看到一个明显的方法来规避这一点。我希望能够告诉回形针忽略模型上的删除回调并保持附件?
我有一个由回形针管理的几个不同图像附件的模型。最近,我们改变了模型的行为,以便可以使用acts_as_paranoid进行软删除和恢复。一切都很好,除了当我们软删除模型时,回形针也会删除附件。如何防止回形针从acts_as_paranoid模型中删除附件?
我已经看过回形针文档和代码,我没有看到一个明显的方法来规避这一点。我希望能够告诉回形针忽略模型上的删除回调并保持附件?
回形针现在有一个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
疯了多少次,你找到你自己的问题后,你问问题的答案。如果有其他人遇到同样的问题,我可以放在这里,或者有人可以有更好的解决方案。对我来说有效的是重写回形针回调before_destroy回调的方法。我把它放到我的代码中,它现在保留了我的附件,所以他们在那里,如果我以后取消删除模型。
protected
def destroy_attached_files
logger.error "-------------- This is me NOT destroying my attachments"
end
真棒!感谢您更新此内容(我很抱歉花了这么长时间回来看看它)。 – 2013-03-12 21:56:47