неинициализированная константа ActiveStorage::Анализатор::ImageAnalyzer::Минимагик

#ruby-on-rails #amazon-web-services #ruby-on-rails-3 #heroku #minimagick

Вопрос:

Я получаю эту ошибку в приложении Rails на Heroku:

 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, которая использует ту же конфигурацию, и она не вызывает этих ошибок (изображения действительно попадают в мое хранилище из промежуточного состояния).

Обе версии приложения используют одни и те же драгоценные камни и пакеты сборки.
В обеих версиях установлены 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.

Кто-нибудь знает, как я могу исправить неинициализированную константу? (Откуда должен быть взят ссылочный класс?)

Комментарии:

1. Ты когда-нибудь понимал это?

2. Отчасти — я не знаю, почему я получал эту ошибку, но я понял, что моя конфигурация на самом деле не идентична между промежуточной и производственной — у меня все еще была конфигурация.active_storage.service = :локальная в production.rb. Я изменил его на config.active_storage.service = :amazon, и теперь файлы загружаются в мое хранилище AWS без каких-либо ошибок.