LoadError: Невозможно автоматически загрузить константу в Rails - PullRequest
0 голосов
/ 28 марта 2019

Я запускаю приложение Rails.

приложение / рабочие / образец / fetch_book_report_worker.rb

class Sample::FetchBookReportWorker
 // body
end

приложение / рабочие / образец / fetch_student_report_worker.rb

class Sample::FetchStudentReportWorker
 // body
end

приложение / рабочие / образец / fetch_teacher_report_worker.rb

class Sample::FetchTeacherReportWorker
 // body
end

Приложение / рабочие / образец / fetch_college_report_worker.rb

class Sample::FetchCollegeReportWorker
 // body
end

Когда я запускал вышеуказанного работника по отдельности, я не видел проблемы. Но я управлял всеми рабочими одновременно. Я получил ошибку ниже.

LoadError: Unable to autoload constant Sample::FetchStudentReportWorker, expected /home/ubuntu/my-app/app/workers/sample/fetch_student_report_worker.rb to define it

Как это решить?

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Вы можете увидеть autoload_paths для ввода этой команды.

bin/rails r 'puts ActiveSupport::Dependencies.autoload_paths'

Если вы не видите ... / приложение / работники / образец, добавьте autoload_paths в config/application.rb

config.autoload_paths << Rails.root.join("app/workers/sample")

Если это может вызвать проблемы в производственном режиме, используйте 'eager_load_paths'

ссылка от https://guides.rubyonrails.org/autoloading_and_reloading_constants.html

1 голос
/ 01 апреля 2019

Я думаю, что это может быть неправильно написано имя файла. убедитесь, что ваш файл точно 'fetch_student_report_worker.rb' и правильный путь к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...