ruby-on-rails - 未初始化的常量 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 时没有遇到错误。
有谁知道我可以如何修复未初始化的常量?(引用的类需要从哪里来?)
解决方案
推荐阅读
- javascript - 通过对象值穿透 JSON 响应
- oracle - 如何验证从外部数据库(oracle)到 hdfs 的数据传输
- linux - 如何在unix中修改相同的文件?
- mysql - 合并 MySQL 查询中的所有操作
- r - 如何从字符串中仅删除数字
- android - 旋转 GoogleMaps InfoWindow 锚点
- blockchain - 在专用网络中连接不同机器上的两个对等点
- c# - 在 MS CRM 2015 错误消息中更新实体时
- php - 如何在 Laravel 中使用一键更新 MySql 值
- spring-boot - Springboot 安全性+jwt 'springSecurityFilterChain' 错误