gpt4 book ai didi

ruby-on-rails - Rails和回形针,删除记录但不删除附件

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:22 26 4
gpt4 key购买 nike

我正在使用 rails 和回形针以通常的方式保存图像。

当带有附件的记录被销毁时,附件也会从文件系统中删除。

99% 的时间这是正确的操作,但是有一种情况我需要附件保留在系统中,即使数据库记录已删除。

我想知道是否有人知道该怎么做。

我尝试在销毁记录之前通过 update_attribute 将附件字段设置为 nil,但 update_attribute 也会删除文件。

一种方法是忽略所有回调,但是需要一些其他回调,这似乎有点太多了。任何人都知道任何更好的方法...

干杯。

最佳答案

您可能想看看 Attachment#assign(当您执行 object.attachment = new_attachment 时调用)是如何在 paperclip 中实现的。基本上,它会进行一些设置,然后调用 Attachment#clear,然后保存新文件。

Attachment#clear 将旧文件放入删除队列中,当您再次调用保存时处理该队列,您想要的只是避免调用清除,您可以通过编写一个跳过该行的新分配方法来实现或者通过猴子修补 #clear 使其成为空操作。从理论上讲,您可以在希望发生这种情况的实例上对其进行猴子修补,但在我看来,您可能希望为整个项目都这样做。

或者您可以清除持有处理队列的实例变量。该变量没有访问器,但执行 instance_variable_get

应该是微不足道的

关于ruby-on-rails - Rails和回形针,删除记录但不删除附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com