2017-05-05 4 views
3

새 레일 프로젝트.초기화되지 않은 상수 측근 작업자

레일 5.0.2 Sidekiq 4.2.10

나는 rails g sidekiq:worker deposit_collector를 실행하고 나는 perform 방법 내에서 필요한 코드를 작성. DepositCollector.perform_async을 나는 오류를 얻을 :

것은 내가 레일 콘솔에 로그인 입력 테스트하려면는 app/workers/ 폴더에 있어야 할 곳에

NameError: uninitialized constant DepositCollectorWorker 

작업자입니다. 이전에 여러 프로젝트에서 sidekiq을 사용 해본 적이 없으며이 프로젝트를 실행 한 적이 없습니다.

답변

7

기본적으로 레일스는 autoload paths 목록에 app 폴더의 모든 하위 디렉토리를 포함합니다. 다음과 같이 콘솔의 자동로드 경로 목록을 검토 할 수 있습니다.

puts ActiveSupport::Dependencies.autoload_paths 

그러나 레일스는 부팅시에만이 경로를 찾습니다. 따라서 app/workers과 같은 새 폴더를 추가해도 Rails 콘솔을 다시 시작하기에는 충분하지 않습니다.

spring stop 

그런 다음 다시 레일 콘솔을 시작하고 app/workers 폴더에있는 파일이 제대로로드 : 당신은 레일 콘솔을 종료하고 함께 Spring Application Preloader을 중지 둘 필요가있다.