使用Devise在身份验证失败时运行某些回调

时间:2014-02-04 15:58:53

标签: ruby-on-rails authentication devise callback customization

我正在尝试实施这种情况:

  

当用户无法进行身份验证时,我会向他展示一个很糟糕的表情。

我如何使用Devise执行此操作? 我有一个肮脏的解决方案,比如在<% flash %>中查找错误消息,这真的很糟糕。有没有更好的办法?比如在某个控制器中设置变量等等。谢谢。

1 个答案:

答案 0 :(得分:0)

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文件.rb:

config.autoload_paths += %W(#{config.root}/lib)

然后重新启动服务器。