【发布时间】:2014-02-04 15:58:52
【问题描述】:
我正在尝试实现这个场景:
当用户认证失败时,我会给他一张大脸。
如何使用Devise 做到这一点?
我有一个肮脏的解决方案,比如在<% flash %> 中找到错误消息,这真的很糟糕。有没有更好的办法?比如在一些控制器中设置一个变量等等。谢谢。
【问题讨论】:
标签: ruby-on-rails authentication devise callback customization
我正在尝试实现这个场景:
当用户认证失败时,我会给他一张大脸。
如何使用Devise 做到这一点?
我有一个肮脏的解决方案,比如在<% flash %> 中找到错误消息,这真的很糟糕。有没有更好的办法?比如在一些控制器中设置一个变量等等。谢谢。
【问题讨论】:
标签: ruby-on-rails authentication devise callback customization
1.在你的lib目录中创建一个custom_failure.rb,其中:
class CustomFailure < Devise::FailureApp
def redirect_url
your_path
end
def respond
if http_auth?
http_auth
else
redirect
end
end
end
2.在你的设计初始化器中,包括:
config.warden do |manager|
manager.failure_app = CustomFailure
end
3.确保 Rails 已加载到您的 lib 文件中,在您的 application.rb 中:
config.autoload_paths += %W(#{config.root}/lib)
然后重启你的服务器。
【讨论】: