Сидекик с аутлогикой

Я использую 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

Если я вошел в систему как пользователь Admin, он работает правильно. Если я вошел в систему как обычный пользователь или без входа в систему, он показывает ошибку маршрутизации, когда я пытаюсь получить доступ к этой странице.

No route matches [GET] "/sidekiq"

Я хочу очистить эту ошибку. Кто-нибудь, пожалуйста, помогите мне. Заранее спасибо.

Я использую рельсы 3.2.13 и ruby ​​версии 2.1.5

1 ответ

Решение

Попробуйте следующее, это должно работать.

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
Другие вопросы по тегам