免责声明:该问题已记录在此处,但为了引起更大社区的更多关注,我在此发布该问题。
我对使用主动存储和acts_as_paranoid 的模型进行了超级简单的设置
class FileUpload < ApplicationRecord
acts_as_paranoid
has_one_attached :file
end
当模型被销毁时,就会进入无限循环。你有遇到过这样的问题吗?你有什么解决办法吗?
使用
has_one_attached :file, dependent: :purge_now
当您销毁任何记录时,它将安排一个作业来销毁给定记录的依赖文件。
因此,当作业尝试删除文件rails时,无法找到该记录,因为它已被删除。
因此,当我们使用
:purge_now
并销毁记录时,它将删除该记录的依赖文件,而不是安排删除作业。
如果使用软删除的acts_as_paranoid gem。我们面临着恢复主动存储的问题。我们可以试试这个方法。
ActiveStorage::Attachment.class_eval do
acts_as_paranoid
end
模型体内。此方法有助于覆盖破坏活动。
示例
类用户< Base
ActiveStorage::Attachment.class_eval do
acts_as_paranoid
end
结束