2013-03-18 24 views
1

我有一個控制器動作創建一個訪客用戶。出於某種原因,當您單擊訪客登錄鏈接時,嘗試將用戶轉發回上一頁時,我會收到重定向循環問題(並非所有時間,但有時)。這是我的代碼:Rails友好的前向重定向循環

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 

似乎它應該工作。任何想法可能會導致這個問題?疑難解答提示也會有幫助。

回答

3

您不應該在您的GuestUsersController上「記住」create操作。將此添加到該類的頂部。

skip_before_filter :remember_location, only: [ :create ] 
+0

此解決方案的其他部分然後是我需要:會議[:return_to] = request.fullpath而不是會議[:return_to] = request.referrer – keruilin 2013-03-18 17:21:14