ruby-on-rails – Rails和paperclip,删除记录但不删除附件
发布时间:2020-12-17 03:34:46 所属栏目:百科 来源:网络整理
导读:我通常使用rails和paperclip来保存图像. 销毁附件的记录时,附件也会从文件系统中删除. 99%的时间这是正确的操作,但是有一种情况我需要附件保留在系统中,即使删除了db记录. 我想知道是否有人知道如何做到这一点. 我已经尝试在销毁记录之前通过update_attribu
我通常使用rails和paperclip来保存图像.
销毁附件的记录时,附件也会从文件系统中删除. 99%的时间这是正确的操作,但是有一种情况我需要附件保留在系统中,即使删除了db记录. 我想知道是否有人知道如何做到这一点. 我已经尝试在销毁记录之前通过update_attribute将附件字段设置为nil,但update_attribute也删除了该文件. 一种方法是忽略所有回调,但是需要一些其他回调,这似乎有点太多了.任何人都知道更好的方法…… 干杯. 解决方法
您可能想要了解如何在回形针中实现Attachment#assign(在执行object.attachment = new_attachment时调用).
基本上,它进行了一些设置,然后调用Attachment #clear,然后保存新文件. 附件#clear将旧文件放入再次调用save时处理的删除队列中,你想要的只是避免调用clear,你可以通过编写一个新的assign方法来跳过那行或者猴子修补#clear以使其成为无操作.从理论上讲,你可以在想要发生这种情况的实例上修补它,但在我看来,你可能想要为整个项目做这件事. 或者,您可以清除保存处理队列的实例变量.该变量没有访问器,但执行instance_variable_get应该是微不足道的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |