SixArm.com » Ruby » CurrentUserId module for Rails sessions
- Author
-
Joel Parker Henderson, [email protected]
- Copyright
-
Copyright © 2006-2011 Joel Parker Henderson
- License
-
See LICENSE.txt file
Get and set the current user id in the Rails session array.
When you set the current user id:
- this sets session[:current_user_id] to the id
- this sets @current_user_id to the id
Example code
self.current_user_id = 1
=> @current_user_id = session[:current_user_id] = 1
Example controller
class MyController < ApplicationController
def sign_in(user)
self.current_user_id = user.id
end
def sign_out
self.current_user_id = nil
end
def is_anyone_using_this?
current_user_id?
end
end
Example of reloading
For fast speed, we memoize the current_user_id: we use the fast instance variable @current_user_id rather than the slower session.
To reload @current_user_id from session, we use the :reload parameter like this:
current_user_id(:reload => true)
Why use the self prefix?
When we set variables, we must use the “self” prefix because Ruby uses this to do method dispatch.
Right:
self.current_user_id = 1
Wrong:
current_user_id = 1