Accessing entire current SESSION row - Not just DATA column


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?

Sandeep G

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.


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]

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?