繁体   English   中英

Rails,Devise:无效的登录重定向到根页面,而不显示错误

[英]Rails, Devise: invalid login redirects to root page instead of displaying errors

由于某种原因,我的应用程序将失败的会话创建重定向到应用程序的根页面,而不是显示登录失败原因的错误(例如密码错误)。

我捕获了http响应:

Request URL:http://localhost:3000/users/sign_in
Request Method:POST
Status Code:302 Moved Temporarily

我的代码执行:

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

如果我将网址更改为user_session_path-我将得到以下信息:

Invalid email or password.

但是,它只是呈现为简单文本。

Request URL:http://localhost:3000/users/sign_in.user
Request Method:POST
Status Code:401 Unauthorized

我安装了omniauth和cancan gems。 不确定从哪里开始寻找-有什么想法? (另一方面,我没有在rake路由中看到该路由会话,但是如果执行正确的登录,它将使我登录。这怎么可能?)

谢谢!

我发现我的应用在lib文件夹中有一个CustomFailure类。 登录时始终将其重定向到根。 删除此失败的应用程序后,该应用程序在登录失败后将我重定向回登录屏幕。

根据Rails-Devise-登录时出现错误消息? ,错误不会提供给表单字段,而是提供给闪现消息。 因此,您需要将它们包括在默认的devise新会话视图中。

我仍然不知道session_path为何起作用,为什么user_session_path产生我的问题中发布的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM