2011-02-15 82 views
0

,当我在我的网页运行这段代码:Ruby on Rails的会话信息,抢

<%用户= User.find(会话[:用户ID])%>

我得到的错误:

线#1提出:

没有ID找不到用户

虽然我在我的认证在我sessions_controller这样的:

def create 
    if user = User.authenticate(params[:username],params[:password]) 
     session[:user_id]= user.id 
     session[:language_id]= user.language_id 
     User.find(user.id).update_attributes(:last_login => Time.now) 
     redirect_to root_path , :notice => (I18n.t :"session.login_success") 
    else 
     flash.now[:alert] = (I18n.t :"session.error") 
     render :action => 'new' 
    end 
    end 

和会话应该包含用户ID

+2

这可能只是输入您的问题时输入错误,但我注意到在一个地方,你有`session [userid]`,而在另一个地方你有'session [:user_id]`(注意下划线)。 – 2011-02-15 17:26:45

回答

4

在您的登录设置session[:user_id],并尝试找到session[:userid](注意伪造的下划线)。这就是为什么。

1

您的控制器正在寻找参数session[:user_id],但在您的意见中是session[:userid],所以它会抱怨session[:user_id]nil