Rails 5 保护 Sidekiq UI

Ken*_*n J 5 ruby-on-rails devise sidekiq

我正在尝试使用 Devise 保护 Sidekiq UI。我正在运行 Rails 5.1、Devise 4.3 和 Sidekiq 5.0。我尝试了以下帖子:

如何使用密码保护我的 /sidekiq 路由(即需要对 Sidekiq::Web 工具进行身份验证)?

但我收到以下错误:

Undefined method failure_app for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我的路线文件如下所示:

Rails.application.routes.draw do
  constraint = lambda do |request|
    request.env['warden'].authenticate!({ scope: :admin_user })
  end

  constraints constraint do
    mount Sidekiq::Web => '/admin/sidekiq'
  end

  devise_for :users
  resources :users
end
Run Code Online (Sandbox Code Playgroud)

如何使用 Devise on Rails 5.1 保护 Sidekiq UI?

use*_*045 5

我偶然发现了这个页面,其中概述了如何使用 Devise 保护 Web UI:

Devise

Allow any authenticated User

# Allow any user access
authenticate :user do
  mount Sidekiq::Web => '/sidekiq'
end

# Allow only admin users
authenticate :user, lambda { |u| u.admin? } do
  mount Sidekiq::Web => '/sidekiq'
end
Run Code Online (Sandbox Code Playgroud)

我已经确认这适用于 Rails 5.1 和 Devise 4.3。