Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我如何防止回形针从acts_as_偏执模型中删除附件?_Ruby On Rails_Paperclip - Fatal编程技术网

Ruby on rails 我如何防止回形针从acts_as_偏执模型中删除附件?

Ruby on rails 我如何防止回形针从acts_as_偏执模型中删除附件?,ruby-on-rails,paperclip,Ruby On Rails,Paperclip,我有一个模型,有两个不同的图像附件,由曲别针管理。最近,我们改变了模型的行为,因此可以使用acts_as_paranoid对其进行软删除和恢复。一切都很好,除了当我们软删除模型时,回形针也会删除附件 我看过回形针文档和代码,我没有看到一个明显的方法来规避这个问题。我想告诉paperclip忽略模型上的删除回调并保留附件?疯狂问了多少次之后,你就找到了自己问题的答案。我把它放在这里,以防其他人也有同样的问题,或者有人有更好的解决办法。对我来说,有效的方法是覆盖回形针用来响应before_destr

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


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

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

 protected  

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

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

用于软删除的文件保存

有一个选项可用于保留附件,以便与软删除的模型配合使用。(表现为偏执、偏执等)

这将防止某些_附件在模型被破坏时被删除,因此在稍后恢复对象时它仍然存在


太棒了!感谢您更新此内容(我很抱歉花了这么长时间才回来查看)。还有人注意到回形针仍然
nil
s删除了记录的所有重要附件属性,即使使用此配置选项?因此,清除
deleted_at
属性以进行恢复是不够的,因为所有附件属性现在都是
nil
has_attached_file :some_attachment, {
  :preserve_files => "true",
}