0

我将 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

4

1 回答 1

0

尝试以下操作,它应该可以工作。

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
于 2015-07-07T09:52:41.617 回答