Ruby on rails 3.2 带authlogic的Sidekiq

Ruby on rails 3.2 带authlogic的Sidekiq,ruby-on-rails-3.2,sidekiq,sidekiq-monitor,Ruby On Rails 3.2,Sidekiq,Sidekiq Monitor,我将Sidekiq与Authlogic结合使用,以避免不必要的用户访问。从这件事开始,我跟踪了一切 但它并没有像预期的那样工作。我使用了下面的代码 # lib/admin_constraint.rb class AdminConstraint def matches?(request) return false unless request.cookie_jar['user_credentials'].present? user = User.find_by_persiste

我将Sidekiq与Authlogic结合使用,以避免不必要的用户访问。从这件事开始,我跟踪了一切 但它并没有像预期的那样工作。我使用了下面的代码

# lib/admin_constraint.rb
class AdminConstraint
  def matches?(request)
    return false unless request.cookie_jar['user_credentials'].present?
    user = User.find_by_persistence_token(request.cookie_jar['user_credentials'].split(':')[0])
    user && user.admin?
  end
end

# config/routes.rb
require "admin_constraint"
mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new
如果我以管理员用户身份登录,它将正常工作。如果我以普通用户身份登录或未登录,当我尝试访问该页面时,会显示路由错误

No route matches [GET] "/sidekiq"
我想清除这个错误。有人请帮帮我。提前谢谢


我使用的是rails 3.2.13和ruby 2.1.5版。试试下面的方法,应该可以

class AdminConstraint
  def matches?(request)
    return false unless request.cookies['user_credentials'].present?
    user = User.find_by_persistence_token(request.cookies['user_credentials'].split(':')[0])
    user && user.admin?
  end
end