2017-05-05 52 views
3

新的rails项目。未初始化的常量sidekiq worker

的Rails 5.0.2 Sidekiq 4.2.10

我跑rails g sidekiq:worker deposit_collector然后填写我所需要的perform方法中的代码。

为了测试我登录到控制台导轨和类型:DepositCollector.perform_async和我得到的错误:

NameError: uninitialized constant DepositCollectorWorker 

工人是它应该在app/workers/文件夹中。我之前在几个项目中使用过sidekiq,并且从未遇到过这个问题。

回答

7

默认情况下,Rails将在autoload paths列表中包含app文件夹的所有子目录。您可以查看控制台中的自动加载路径列表:

puts ActiveSupport::Dependencies.autoload_paths 

但Rails仅在引导时查找这些路径。所以,当你添加一个新文件夹,如app/workers,重启Rails控制台是不够的。必须同时退出Rails的控制台,并停止Spring Application Preloader

spring stop 

然后再次启动了Rails控制台,并在app/workers文件夹中的文件将正常加载。

相关问题