Я получаю неинициализированную постоянную ошибку NameError на производстве. Вызов работнику осуществляется через контроллер с разделением имен (controllers / api / mobile).
Однако у меня есть отдельный работник, у которого нет проблем с производством, и эта ошибка не возникает.
У меня есть два рабочих:
app/workers/ExtractionWorker
app/workers/CopyWasabiObject
У меня есть два контроллера:
app/controllers/photos_controller.rb
app/controllers/api/mobile/photos_controller.rb
Контроллер без пространства имен без проблем вызывает ExtractionWorker
, выполняет работу и не вызывает эту ошибку.
Когда отправляется запрос API на api/mobile/photos_controller.rb
, я получаю следующую ошибку:
NameError: uninitialized constant CopyWasabiObject
Из командной строки на производстве я могу создать экземпляр класс без проблем
Loading production environment (Rails 6.0.2.1)
irb(main):001:0> CopyWasabiObject.new
=> #<CopyWasabiObject:0x0000557aa6e262f8>
app / controllers / photos_controller.rb
if @photo.save
ExtractionWorker.perform_async(wasabi_path(folder.uuid, photo_params[:name]), @photo.id)
...
end
работает как положено
app / controllers / api / mobile / photos_controller.rb
def update
...
CopyWasabiObject.perform_async(@photo.uuid, raw_folder_uuid) if @photo.update!(merged_params)
end
работает на dev, но не работает на производстве
Почему один рабочий работает, а другой не загружается? Я не коснулся автоматической загрузки в config / application.rb. Каждый файл находится в app / *, и я не использую ничего в root, как lib.
То, что я пробовал в последнее время и не работает.
Я попытался расставить названия между работами, чтобы они соответствовали путям. IE: работники / api / mobile Я попытался переместить все работы в приложение / модели / Я изменил вызовы в контроллерах для вызова методов класса, которые затем вызывают работника
Независимо от того, что я пытаюсь сделать, Я просто получаю NameError: неинициализированная константа CopyWasabiObject
Любая помощь будет оценена!