未初始化常量 ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick

Kar*_*hop 10 ruby-on-rails heroku amazon-web-services ruby-on-rails-3 minimagick

我在 Heroku 上的 Rails 应用程序上收到此错误:

\n
NameError: uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick\n/app/vendor/bundle/ruby/3.0.0/gems/activestorage-6.1.3/lib/active_storage/analyzer/image_analyzer.rb:46:in `rescue in read_image'\n
Run Code Online (Sandbox Code Playgroud)\n

它发生在由 Sidekiq 生成的作业中,ActiveStorage::AnalyzeJob并且每当我尝试将图像上传到我的 AWS 存储(图像未到达我的存储桶)时似乎就会触发。

\n

奇怪的是,我staging在 Heroku 上有一个应用程序的重复版本,它使用相同的配置,并且它不会触发这些错误(图像确实从暂存到达我的存储桶)。

\n

该应用程序的两个版本都使用相同的 gem 和构建包。
\n两个版本都安装了 ImageMagick 6.9.10-23 和 mini_magick 4.11.0。
\n如果我引用提到的类,两个版本都会在控制台显示相同的错误,例如:

\n
$ heroku run rails c -a my-staging-app\nRunning rails c on \xe2\xac\xa2 my-staging-app... up, run.9122 (Free)\nLoading staging environment (Rails 6.1.3)\nirb(main):001:0*  ActiveStorage::Analyzer::ImageAnalyzer\n=> ActiveStorage::Analyzer::ImageAnalyzer\nirb(main):002:0>  ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick\nTraceback (most recent call last):\n        1: from (irb):2:in `<main>'\nNameError (uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick)\nDid you mean?  MiniMime\n
Run Code Online (Sandbox Code Playgroud)\n

但我不知道为什么登台应用程序在上传到 AWS 时没有遇到错误。

\n

有谁知道如何修复未初始化的常量?(引用的类需要从哪里来?)

\n

Kar*_*hop 1

我不知道为什么会收到这个特定的错误,但我意识到我的配置实际上在登台和生产之间并不相同。

我还在config.active_storage.service = :local生产中。rb。

我将其更改为config.active_storage.service = :amazon,现在文件已上传到我的 AWS 存储桶,没有任何错误。