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 (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