升级到 Rails 5.0.0.1 后未初始化的常量 Sidekiq::Rails::Reloader

`uninitialized constant Sidekiq::Rails::Reloader` after upgrading to Rails 5.0.0.1

我刚从 Rails 4.2.6 升级到 Rails 5.0.0.1。我在 config/routes.rb 中对 Sidekiq UI 进行了以下配置:

if Rails.application.queuing_enabled?
  require 'sidekiq/web'
  Sidekiq::Web.set :session_secret, Rails.application.secrets[:secret_key_base]

  authenticate :user, ->(u) { u.admin? } do
    mount Sidekiq::Web => '/sidekiq'
  end
end

Rails.application.queuing_enabled?的值在production模式下总是true,但在developmenttestfalse

升级后,当我在本地 运行 进行任何操作(尝试 运行ning rspecrails middleware 等)时,我遇到以下错误:

rails aborted!
NameError: uninitialized constant Sidekiq::Rails::Reloader
/home/project/config/routes.rb:66:in `block in <top (required)>'
/home/project/config/routes.rb:2:in `<top (required)>'
/home/project/config/environment.rb:6:in `<top (required)>'
/home/project/bin/rails:9:in `require'
/home/project/bin/rails:9:in `<top (required)>'
/home/project/bin/spring:13:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => middleware => environment
(See full trace by running task with --trace)

我的 Gemfile.lock 有以下 Sidekiq 版本控制信息。

sidekiq (4.2.7)
  concurrent-ruby (~> 1.0)
  connection_pool (~> 2.2, >= 2.2.0)
  rack-protection (>= 1.5.0)
  redis (~> 3.2, >= 3.2.1)
sidekiq-limit_fetch (3.4.0)
  sidekiq (>= 4)

非常感谢任何帮助。谢谢!

显然,这是 Sidekiq 4.2.7 的一个错误,将在下一个版本中解决。

详情请见https://github.com/mperham/sidekiq/issues/3275