Redirect rails设计gem重定向循环

Redirect rails设计gem重定向循环,redirect,ruby-on-rails-4,devise,Redirect,Ruby On Rails 4,Devise,我在rails 4.1.4应用程序中使用Desive gem,需要在用户登录后立即在会话变量中添加一些自定义键值对 在资源的路径中签名后,我覆盖了以下方法 在为资源注册\u路径\u之后 更新资源的路径后 按此处规定重置资源方法的\u密码\u路径\u后: 但是,在登录时,我在路径中多次输入after_sign_,并输出以下结果: 2014年10月8日22:56:45+0530开始登录127.0.0.1的GET/users/sign_ Desive::SessionControllerNew作为H

我在rails 4.1.4应用程序中使用Desive gem,需要在用户登录后立即在会话变量中添加一些自定义键值对 在资源的路径中签名后,我覆盖了以下方法 在为资源注册\u路径\u之后 更新资源的路径后 按此处规定重置资源方法的\u密码\u路径\u后:

但是,在登录时,我在路径中多次输入after_sign_,并输出以下结果:

2014年10月8日22:56:45+0530开始登录127.0.0.1的GET/users/sign_ Desive::SessionControllerNew作为HTML处理 用户加载0.3ms从用户中选择用户。*其中users.id=1 ORDER BY users.id ASC LIMIT 1 重定向到http://localhost:3000/users/sign_in 筛选器链暂停为:要求\u无\u身份验证已呈现或重定向 在3ms ActiveRecord中找到已完成的302:0.6ms

每次,在最终将我重定向到根路径之前。在将我重定向到根目录之前,浏览器会临时显示重定向循环错误消息。 编辑:

事实证明,由于我有两种不同的Desive模型用户和管理员,这一行代码在签名后在路径中表示:

在以下内容中签名:action=>new',:controller=>sessions',:only.\u path=>false,:protocol=>http'

正在创建urlhttp://localhost:3000/admins/sign_in 而不是http://localhost:3000/users/sign_in

如何使url_默认为用户模型而不是管理员模型


谢谢

我自己也遇到了这个问题。无论出于何种原因,url\u For似乎默认为管理员,不知道为什么好消息是您不必使用url\u For来完成此任务

相反,摆脱

sign_in_url = url_for(:action => 'new', :controller => 'sessions', :only_path => false, :protocol => 'http')
替换

if request.referer == sign_in_url


该助手使您的代码更清晰,并允许您指定所需的Desive型号。

哈哈,谢谢,我做了类似的事情,完全忘记了这一点!
if request.referer == new_user_session_url