3

我按照这个问题在登录失败后设计重定向并且效果很好,但是我收到一个通知,告诉我我需要登录才能继续,并且我需要的消息是密码或电子邮件无效。所以我在 CustomFailure 中添加了 flash 通知,如下所示:

    class CustomFailure < Devise::FailureApp
  def redirect_url
    root_path
  end

  def respond
    if http_auth?
      http_auth
    else
      flash[:error] = I18n.t(:invalid, :scope => [ :devise, :failure ])
      redirect
    end
  end
end

现在它向我显示了两个消息,无效密码和未经身份验证,我怎样才能消除未经身份验证的消息?

4

1 回答 1

1

Devise 没有设置flash[:error],但是flash[:alert]当登录失败时,尝试在你的应用程序中设置它。

您也可以只覆盖该方法Devise::FailureApp#i18n_message并让它返回您选择的消息:

class CustomFailure < Devise::FailureApp
  def redirect_url
    root_path
  end

  def i18n_message
    "Hello World" # you might go for something more elaborate here
  end
end
于 2013-01-15T19:14:58.460 回答