2012-07-26 68 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