Rails 5.2.3:Sidekiq Scheduler提供了NameError:Production中未初始化的常量

时间:2019-05-28 05:28:11

标签: ruby-on-rails sidekiq ruby-on-rails-5.2

在我的Rails 5.2.3应用程序中,我有config/sidekiq.yml,看起来像这样:

:verbose: true
:concurrency: 30
:queues:
  - [mailers, 7]
  - [critical, 6]
  - [default, 5]
  - [low, 4]

:logfile: ./log/sidekiq.log

:schedule:
  ScheduledNotices:
    queue: low
    cron: '0 0 * * * *' # every hour

我的ScheduledNotices被放置在lib\scheduled_notices.rb

目前在开发环境Scheduler中可以正常工作,但是在生产环境中却出现此错误:NameError: uninitialized constant ScheduledNotices

在我的application.rb中,我有:

config.autoload_paths += %W(#{config.root}/lib)

请问我在做什么错?

1 个答案:

答案 0 :(得分:1)

它可以实现路径自动加载问题,请查看此以获取更多详细信息:https://github.com/rails/rails/issues/13142#issuecomment-275492070

您应该做的是更改:

config.autoload_paths += %W(#{config.root}/lib)

config.eager_load_paths << Rails.root.join('lib')