Rails友好的前向重定向循环

时间:2013-03-18 16:16:12

标签: ruby-on-rails ruby-on-rails-3 session redirect controller

我有一个控制器操作,可以创建访客用户。出于某种原因,当您单击访客登录链接时,我会在尝试将用户转发回上一页时遇到重定向循环问题(不是所有时间,但有时)。这是我的代码:

class ApplicationController < ActionController::Base
  before_filter :remember_location

  protected

  def remember_location
    session[:return_to] = request.referrer
  end

  def redirect_back_or(default)
    redirect_to(session[:return_to] || default)
    clear_return_to
  end

  def clear_return_to
    session.delete(:return_to)
  end
end

class GuestUsersController < ApplicationController

  def create
    # do create thing...
    redirect_back_or(root_url)
  end

end

似乎它应该工作。可能导致问题的任何想法?故障排除提示也很有帮助。

1 个答案:

答案 0 :(得分:3)

您不应该“记住”create上的GuestUsersController操作。将其添加到该类的顶部。

skip_before_filter :remember_location, only: [ :create ]