首页 > 解决方案 > 未初始化的常量 ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick

问题描述

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

NameError: uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick
/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'

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

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

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

$ heroku run rails c -a my-staging-app
Running rails c on ⬢ my-staging-app... up, run.9122 (Free)
Loading staging environment (Rails 6.1.3)
irb(main):001:0*  ActiveStorage::Analyzer::ImageAnalyzer
=> ActiveStorage::Analyzer::ImageAnalyzer
irb(main):002:0>  ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick
Traceback (most recent call last):
        1: from (irb):2:in `<main>'
NameError (uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick)
Did you mean?  MiniMime

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

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

标签: ruby-on-railsamazon-web-servicesruby-on-rails-3herokuminimagick

解决方案


推荐阅读