2012-07-26 38 views
0

IM在​​Ruby on Rails的重定向在登錄時

教程,我設法得到這個角色時,用戶將收到提示訪問受限制的網頁,然後將在登錄後重定向到禁區頁面時登錄以下

但是,登錄後,我已經註銷並與其他用戶一起登錄,我將重定向回頁面,而不是新會話的默認主頁面。

我的會話控制器

class SessionsController < ApplicationController 

def new 

end 

def create 
    user = User.find_by_email(params[:session][:email]) 
if user && user.authenticate(params[:session][:password]) 
    sign_in user 
    redirect_back_or user 
    # Sign the user in and redirect to the user's show page. 
else 
    # Create an error message and re-render the signin form. 
    flash.now[:error] = 'Invalid email/password combination' 
    render 'new' 
end 
end 
.... 
end 

我會幫手

module SessionsHelper 
.... 
def redirect_back_or(default) 
    redirect_to(session[:return_to] || default) 
    session.delete(:return_to) 
end 

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

end 
+0

哪裏是'store_location'打電話? – 2012-07-26 09:41:41

回答

0

添加session.delete(:return_to)創建方法

def create 
    user = User.find_by_email(params[:session][:email]) 
    if user && user.authenticate(params[:session][:password]) 
    sign_in user 
    session.delete(:return_to) 
    redirect_back_or user 
    # Sign the user in and redirect to the user's show page. 
    else 
    # Create an error message and re-render the signin form. 
    flash.now[:error] = 'Invalid email/password combination' 
    render 'new' 
    end 
end