我遵循了这个问题Devise redirect after login fail并且效果很好,但我收到一条闪光通知告诉我需要登录才能继续,而我需要的信息是密码或电子邮件无效。所以我在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
现在它向我展示了消息,无效密码和未经验证的消息,如何消除未经身份验证的消息?
答案 0 :(得分: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