销毁具有 ActiveStorage + act_as_paranoid - Rails 5.2 的模型后出现 SystemStackError

SystemStackError after destroying a model having ActiveStorage + act_as_paranoid - Rails 5.2

免责声明:问题已记录here但为了引起广大社区的更多关注,我将问题发布在这里。

我对使用主动存储的模型进行了超级简单的设置 acts_as_paranoid

class FileUpload < ApplicationRecord
  acts_as_paranoid
  has_one_attached :file
end

当模型被销毁时,它会进入死循环。你遇到过这样的问题吗?你有什么解决办法吗?

使用

  has_one_attached :file, dependent: :purge_now

当您销毁任何记录时,它会安排一个作业来销毁给定记录的相关文件。

因此当作业尝试删除文件时 rails 无法找到记录,因为它已被删除。

所以当我们使用:purge_now并销毁记录时,它会删除与记录相关的文件,而不是安排删除作业。