Ruby on Rails中的未初始化sidekiq工作者如何成为长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计243个文字,预计阅读时间需要1分钟。
新的铁轨项目。Rails 5.0.2 + Sidekiq 4.2.10。我运行了`rails g sidekiq`生成了worker `deposit_collector`。然后在`perform`方法中填写了我需要的代码。为了测试,我登录到Rails控制台并输入`DepositCollector.perform_async`。
新的铁轨项目.Rails 5.0.2
Sidekiq 4.2.10
我运行了rails g sidekiq:worker deposit_collector,然后在perform方法中填写了我需要的代码.
为了测试我登录到rails控制台并键入:DepositCollector.perform_async并且我收到错误:
NameError: uninitialized constant DepositCollectorWorker
工作者应该在app / workers /文件夹中.我以前在几个项目中使用过sidekiq,但从未碰到过这个问题.
默认情况下,Rails将包含 autoload paths列表中app文件夹的所有子目录.您可以在控制台中查看自动加载路径列表:puts ActiveSupport::Dependencies.autoload_paths
但是Rails只在启动时查找这些路径.因此,当您添加新文件夹(如app / workers)时,重新启动Rails控制台是不够的.您需要退出Rails控制台并使用以下命令停止Spring Application Preloader:
spring stop
然后再次启动Rails控制台,app / workers文件夹中的文件将正确加载.
本文共计243个文字,预计阅读时间需要1分钟。
新的铁轨项目。Rails 5.0.2 + Sidekiq 4.2.10。我运行了`rails g sidekiq`生成了worker `deposit_collector`。然后在`perform`方法中填写了我需要的代码。为了测试,我登录到Rails控制台并输入`DepositCollector.perform_async`。
新的铁轨项目.Rails 5.0.2
Sidekiq 4.2.10
我运行了rails g sidekiq:worker deposit_collector,然后在perform方法中填写了我需要的代码.
为了测试我登录到rails控制台并键入:DepositCollector.perform_async并且我收到错误:
NameError: uninitialized constant DepositCollectorWorker
工作者应该在app / workers /文件夹中.我以前在几个项目中使用过sidekiq,但从未碰到过这个问题.
默认情况下,Rails将包含 autoload paths列表中app文件夹的所有子目录.您可以在控制台中查看自动加载路径列表:puts ActiveSupport::Dependencies.autoload_paths
但是Rails只在启动时查找这些路径.因此,当您添加新文件夹(如app / workers)时,重新启动Rails控制台是不够的.您需要退出Rails控制台并使用以下命令停止Spring Application Preloader:
spring stop
然后再次启动Rails控制台,app / workers文件夹中的文件将正确加载.

