# Accessing entire current SESSION row - Not just DATA column

**URL:** <https://www.ruby-forum.com/t/accessing-entire-current-session-row-not-just-data-column/129058>\
**Category:** Rails\
**Created:** [February 13, 2008, 9:47pm UTC](https://www.ruby-forum.com/t/accessing-entire-current-session-row-not-just-data-column/129058 "2008-02-13T21:47:10Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sgudibanda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9adbd/32.png) [@sgudibanda](https://www.ruby-forum.com/u/sgudibanda)\
**Post date:** [February 13, 2008, 9:47pm UTC](https://www.ruby-forum.com/t/accessing-entire-current-session-row-not-just-data-column/129058/1 "2008-02-13T21:47:10Z")

</div>

Hi,

I am in need to perform left join between my friends table and In built  
sessions table:

LEFT JOIN sessions ON sessions.user\_id=friendships.friend\_id

To do this, I have altered sessions table to have user\_id apart from  
what i wud store in session data.

session[:user\_id] points to user\_id in Data Hash.  
session.user\_id throws me an error.(undefined method user\_id)

How do i set this user\_id for the session row when someone logs in? How  
can I access session table? How will I know the current session id?

Regards,  
Sandeep G

---

<div class="post-metadata">

**Author:** ![sgudibanda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9adbd/32.png) [@sgudibanda](https://www.ruby-forum.com/u/sgudibanda)\
**Post date:** [February 13, 2008, 9:56pm UTC](https://www.ruby-forum.com/t/accessing-entire-current-session-row-not-just-data-column/129058/2 "2008-02-13T21:56:51Z")

</div>

On 2/13/08, Sandeep G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> How do i set this user\_id for the session row when someone logs in? How  
> can I access session table? How will I know the current session id?

You can use session.model to get at the underlying session record.

You can even reopen CGI::Session::ActiveRecordStore::Session to add  
associations if you like.

jeremy

---

<div class="post-metadata">

**Author:** ![sgudibanda](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9adbd/32.png) [@sgudibanda](https://www.ruby-forum.com/u/sgudibanda)\
**Post date:** [February 14, 2008, 6:14am UTC](https://www.ruby-forum.com/t/accessing-entire-current-session-row-not-just-data-column/129058/3 "2008-02-14T06:14:58Z")

</div>

Thanks Jeremy!  
session.model worked fine for current sessions. I am able to set  
user\_ids for sessions henceforth.

Another issue is, Now that I have added user\_id to sessions, I need to  
set that for existing rows as well.I tried to do that with:

stored\_sessions = CGI::Session::ActiveRecordStore::Session.find(:all)  
stored\_sessions.each do |stored\_session|  
id = Marshal.load( Base64.decode64( stored\_session[‘data’] ) )  
stored\_session[‘user\_id’] = id[:user\_id]  
stored\_session.save  
end

But save part does’nt work.  
I tried something fancy like this:  
id[‘model’].update\_attribute(:user\_id, id[:user\_id])  
Only to get syntax error…

What I am missing here?
