2010-05-27 49 views
1

所以我試圖讓用戶返回到他們在看網頁,他們點擊「登錄」導軌和新用戶重定向和登錄

這是我在我的用戶應用控制器獲得前:

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

而這就是我在我的會話控制器:

def new 
    @user_session = UserSession.new 
    session[:return_to] = request.referer 
    end 
    end 

    def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save 
     flash[:notice] = "Login successful!" 
     redirect_back_or_default(home_path) 
    else 
     render :action => :new 
    end 
    end 

也能正常工作的大部分時間,但如果在正確的用戶登錄,他們註冊到網站後,他們將被重定向至一個空白頁。我想這是「創建」操作,因爲這是去用戶會話之前的最後一個操作。

所以,我想這一點:

def new 
    @user_session = UserSession.new 
    unless request.referer == join_path 
    session[:return_to] = request.referer 
    end 
    end 

而這個試圖帶我回到登錄頁面我登錄後

我真正想要做的是讓用戶看到自己的個人資料,當他們第一次登錄。

這不會給我一個用戶ID並提出了路由錯誤

def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save 
     flash[:notice] = "Login successful!" 
     redirect_back_or_default(user_path(current_user)) 
    else 
     render :action => :new 
    end 
    end 

任何人通過之前這些重定向雜技哪裏去了?我似乎無法得到它的工作。如果有幫助,我使用authlogic。

回答