2009-08-22 19 views
6

Me preguntaba si alguien sabe cómo puedo acceder al ID de usuario desde el objeto de sesión en Rails usando la gema Authlogic.Authlogic accessing id de usuario en el objeto de sesión

que tienen un barrendero que corre a expirar un fragmento caché específica a un usuario:

def expire_cache_for(record) 
    ActiveRecord::Base.logger.debug "team: #{record.team_id}" 
    ActiveRecord::Base.logger.debug("User: #{session}") 

    # Expire a fragment 
    expire_fragment(:controller => 'groups', :action => "team_#{record.team_id}_user_#{current_user.id}") 
    end 

¿Cómo puedo acceder al ID de usuario de mi barredora de expirar el fragmento usando Authlogic?

Respuesta

13

Usted debe ser capaz de hacer esto mediante el uso de su modelo UserSession (o lo que sea el modelo que ha añadido que se deriva de Authlogic :: sesión :: Base):

current_user = UserSession.find 
id = current_user && current_user.record.id 
+0

gracias! Esto también me ayudó –

+0

¿UserSession.find no devuelve un objeto UserSession y no un objeto User? el usuario actual sería UserSession.find.user –

+1

John Pignata es correcto. La sesión almacena el modelo acts_as_authentic en un registro variable, que es el mismo independientemente del nombre del modelo acts_as_authentic. –

Cuestiones relacionadas