我在尝试让Devise在登录后重定向到用户的上一页时遇到了巨大的麻烦。
我试图按照Wiki 上的指南进行操作,但是当我实现此代码时,它建议:
def after_sign_in_path_for(resource)
sign_in_url = url_for(:action => 'new', :controller => 'sessions', :only_path => false, :protocol => 'http')
if request.referer == sign_in_url
super
else
request.referer || "/"
end
end
它只是总是重定向到根目录,而不是前一页。
我发现以前的问题具有相同的问题,但其中的解决方案没有奏效。
然后我想我会简化它,只通过获取引用 URL 的路径将用户返回到以前的 URL,因为我认为这可能会有所帮助,但是我得到了同样的错误:
def after_sign_in_path_for(resource)
URI(request.referer).path
end
如果我简单地将静态路径放入:
def after_sign_in_path_for(resource)
"/somepath"
end
这绝对没问题。我确定我在这里遗漏了一些明显的东西!