如何防止回形针从acts_as_paranoid模型中删除附件?

时间:2011-02-11 20:05:04

标签: ruby-on-rails paperclip

我有一个模型,其中包含由回形针管理的几个不同的图像附件。最近我们更改了模型的行为,因此可以使用acts_as_paranoid对其进行软删除和恢复。一切都很好,除了当我们软删除模型时,回形针也会删除附件。

我查看了回形针文档和代码,但我没有看到明显的方法来规避这一点。我想告诉paperclip忽略模型上的删除回调并保留附件吗?

2 个答案:

答案 0 :(得分:8)

Paperclip现在有一个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

答案 1 :(得分:2)

疯狂有多少次你在问到它之后就找到了自己问题的答案。我把它放在这里以防其他人有同样的问题,或者可能有人有更好的解决方案。对我有用的是覆盖paperclip用于响应before_destroy回调的方法。我把它放到我的代码中,它现在保留了我的附件,所以如果我以后取消删除模型,它们就在那里。

 protected  

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