ruby-on-rails - 从 Active Storage 中删除所有数据?

标签 ruby-on-rails ruby ruby-on-rails-5 ruby-on-rails-5.2

我想知道如何从 Active Storage 中删除所有数据甚至重置 Active Storage?有什么办法吗?提前致谢!

注意:我使用的是 Rails 5.2

最佳答案

这个问题对我提出了挑战,所以我用本地存储对我的虚拟应用程序进行了一些测试。

我有通常的模型 User ,它 has_one_attached :avatar

在本地存储中,文件保存在/storage 文件夹下,子文件夹下随机命名为两个字符的字符串。

与文件相关的信息存储在两个表中:

为了完全清理这两个表,我在 rails console 中做了:

ActiveStorage::Attachment.all.each { |attachment| attachment.purge }

这个命令删除

  • 该表中的所有记录:ActiveStorage::Attachment.any? #=> 错误
  • 所有的 blob:ActiveStorage::Blob.any? #=> 错误
  • 位于/storage 子文件夹下的所有文件;当然,子文件夹仍然是空的。

ActiveStorage 仍然正常工作。

我希望远程存储具有相同的行为,具有正确的权限。

关于ruby-on-rails - 从 Active Storage 中删除所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51175944/

相关文章:

ruby-on-rails - 测试自定义 Rails 模型方法

ruby-on-rails - 我如何定义这个变量?

ruby - 生成随机字符串并保存到文件

ruby-on-rails - ActiveModel::UnknownAttributeError: PaperTrail::VersionAssociation 的未知属性 'foreign_type'

ruby-on-rails - 在 Rails 5 中在哪里添加共享 View 文件?

javascript - 这里-api 未捕获类型错误 : Cannot read property 'addDomListener' of undefined at

ruby-on-rails - RailsDevTweaks:跳过此请求的 ActionDispatch::Reloader Hook

ruby-on-rails - GitLab 电子邮件设置 : sending via another mail server

ruby-on-rails - Rails/execjs 找不到 Node.js

ruby - 填充 Ruby 哈希的更好方法?