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

问题描述 投票:0回答:2

免责声明:该问题已记录在此处,但为了引起更大社区的更多关注,我在此发布该问题。

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

class FileUpload < ApplicationRecord
  acts_as_paranoid
  has_one_attached :file
end

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

ruby-on-rails rails-activestorage acts-as-paranoid
2个回答
1
投票

使用

  has_one_attached :file, dependent: :purge_now

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

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

因此,当我们使用

:purge_now
并销毁记录时,它将删除该记录的依赖文件,而不是安排删除作业。


0
投票

如果使用软删除的acts_as_paranoid gem。我们面临着恢复主动存储的问题。我们可以试试这个方法。

ActiveStorage::Attachment.class_eval do
  acts_as_paranoid
end

模型体内。此方法有助于覆盖破坏活动。

示例

类用户< Base

 ActiveStorage::Attachment.class_eval do
  acts_as_paranoid
 end

结束

© www.soinside.com 2019 - 2024. All rights reserved.