Uninitialized Constant для Rails работника (он включен в мои пути автозагрузки) - PullRequest
0 голосов
/ 04 марта 2020

У меня есть некоторые из моих рабочих на Rails в подкаталоге enum, например:

/var/www/myapp/app/workers/
/var/www/myapp/app/workers/enum

Однако рабочие внутри каталога enum, похоже, не загружаются вместе с применение. Если я пытаюсь вызвать работника, который находится там, он просто выдаст мне следующую ошибку:

NameError: uninitialized constant CurrentWorkerWorker::MyCustomWorker

Я также должен отметить, что current_worker.rb находится в папке root workers, тогда как my_custom_worker.rb находится в workers/enum.

Когда я запускаю ActiveSupport::Dependencies.autoload_paths, я заметил, что папки workers и workers/enum находятся в списке (я просто добавил папку workers/enum как часть устранения неполадок), но он все еще не работает.

Есть мысли, почему это может не загружаться? Похоже, что Rails обрабатывает только тех рабочих, которые находятся в папке root workers.

1 Ответ

1 голос
/ 04 марта 2020

Если вы хотите добавить подкаталоги в существующие пути автозагрузки, вы можете сделать следующее внутри application.rb:

config.autoload_paths << Rails.root.join('app/workers/**')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...