Rack Warden: как я могу получить доступ к сообщению, переданному фейлу! метод?

При сбое стратегии аутентификации в Warden сообщение может быть передано методу fail!. Как я могу получить доступ к этому сообщению в моем действии приложения с ошибкой по умолчанию, чтобы я мог отобразить его во флэш-сообщении? Я пробовал request.env['warden'].message, но после просмотра кода для Warden::Proxy эта переменная устанавливается только для выигрышных стратегий. Мысли?


person Bryan    schedule 07.04.2012    source источник


Ответы (2)


Возможно, другой способ неудачных стратегий (из недавней документации) — использовать throw(:warden, :foo => 'bar'). Все, что вы выбрасываете, будет доступно в вашем неудачном приложении через request.env['warden.options'], включая строку желаемого URL-адреса. ХТН

person stuartc    schedule 10.11.2012

При использовании ошибки или ошибки! методы, вы можете получить сообщение об ошибке от объекта смотрителя среды.

Пример:

def unauthenticated
  flash[:alert] = env["warden"].message unless env["warden"].message.blank?
end

http://www.rubydoc.info/github/hassox/warden/Warden/Proxy#message-instance_method

person Nathan    schedule 30.10.2014