# Session\[:user\_id\] problem

**URL:** <https://www.ruby-forum.com/t/session-user-id-problem/84856>\
**Category:** Rails\
**Created:** [February 8, 2007, 5:47am UTC](https://www.ruby-forum.com/t/session-user-id-problem/84856 "2007-02-08T05:47:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![WDZ](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/b9bd4f/32.png) [@WDZ](https://www.ruby-forum.com/u/WDZ)\
**Post date:** [February 8, 2007, 5:47am UTC](https://www.ruby-forum.com/t/session-user-id-problem/84856/1 "2007-02-08T05:47:22Z")

</div>

Hello,

Please help! I ran into a problem that session[:user\_id] seems lost.  
The session[:user\_id] is set during user’s login. Other pages have  
“before\_filter :login\_required”. The method “login\_required” is  
defined in ApplicationController to check if session[:user\_id] exists.  
However, after user logs in successfully (I can see the printed  
user\_id), and when bringing other pages which call login\_required, the  
session[:user\_id] becomes empty.

I am using rails 1.2.2 and gem version is also 1.2.2.  
active\_record\_store is used for session storage.

Can anyone shed some light on this problem?

Thanks a lot!

Wendong

---

<div class="post-metadata">

**Author:** ![WDZ](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/b9bd4f/32.png) [@WDZ](https://www.ruby-forum.com/u/WDZ)\
**Post date:** [February 8, 2007, 6:00am UTC](https://www.ruby-forum.com/t/session-user-id-problem/84856/2 "2007-02-08T06:00:22Z")

</div>

Are you sure the value is empty and that it’s just not a display issue  
on  
the other pages?  
And is the session still in your db?

If those are good can you post some code so we can get a better idea  
what’s  
going on?

Bryan

> **[WorkChest - Hire Pakistani Freelancers](https://workchest.com/)**
>
> WorkChest is a Freelance Marketplace where employers can hire Pakistani freelancers for online work

[Workchest.com](http://Workchest.com) - Freelance jobs of every type  
You’re worth something at [Workchest.com](http://Workchest.com).

---

<div class="post-metadata">

**Author:** ![WDZ](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/b9bd4f/32.png) [@WDZ](https://www.ruby-forum.com/u/WDZ)\
**Post date:** [February 8, 2007, 6:13am UTC](https://www.ruby-forum.com/t/session-user-id-problem/84856/3 "2007-02-08T06:13:23Z")

</div>

Thanks Bryan for your help. Yes, I am sure the value is empty, not  
display issue. The session is still in db (sessions table). Here is  
part of code:

class IndexController \< ApplicationController  
…

def process\_student\_login  
if user = User.sauthenticate(params[:user])  
if user.active?

```
    session[:uid] = user.id
    logger.info("session uid = #{session[:uid]}") # it prints

```

out uid successfully  
…  
end  
end

class ApplicationController \< ActionController::Base  
before\_filter :set\_user

def set\_user  
logger.info(“in set\_user: session uid = #{session[:uid]}”)

# it prints out nil

```
@user = User.find(session[:uid]) if @user.nil? && session[:uid]

```

end

def login\_required  
logger.info(“in login\_required: session uid =  
#{session[:uid]}”) # it prints out nil

```
return true if @user
access_denied
return false

```

end

class Myaccount::IndexController \< ApplicationController  
before\_filter :login\_required # always fails and returns false

…  
end

–Wendong
