1

我正在使用用户登录/注册的设计。我想从登录前的页面重定向用户。但是设计没有正确重定向。登录时,它会登录用户,但在 /user/sign_in 页面上抛出错误:

“Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。”

当我返回并重新加载显示用户已登录的页面时。

我的应用程序控制器看起来像:

class ApplicationController < ActionController::Base
 protect_from_forgery
  def after_sign_in_path_for(resource)
   stored_location_for(resource) || request.referer || root_path
  end
  def after_sign_out_path_for(resource_or_scope)
   request.referrer
  end
end

我在产品购买页面上使用了引导模式脚本。它非常适用于页面上模式脚本中使用的登录按钮。但是对于标题中的登录按钮以及因此对于应用程序的每个页面都给出了不正确的重定向错误。

原因是什么?

4

1 回答 1

1

对于将在被重定向到登录页面之前存储用户位置的方法,您将需要这样的东西。

  before_filter :store_location

  def store_location
    session[:user_return_to] = request.fullpath
  end

  def after_sign_in_path_for(resource)
   session[:user_return_to] || request.referrer || root_path
  end

这将在用户进入您的网站时将位置存储在会话变量中,然后在用户登录后将其重定向到该会话变量。

于 2013-03-04T15:37:28.407 回答