[英]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.