2009-08-22 8 views
6

Zastanawiałem się, czy ktoś wie, w jaki sposób mogę uzyskać dostęp do identyfikatora użytkownika z obiektu sesji w Railsach przy użyciu klejnotu Authlogic?Authlogic uzyskujący identyfikator użytkownika w obiekcie sesji

Mam zamiatacz, który działa wygaśnie fragment pamięci podręcznej specyficzne dla użytkownika:

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 

Jak mogę uzyskać dostęp do identyfikatora użytkownika z mojego zamiatarki wygaśnie fragment używając Authlogic?

Odpowiedz

13

Powinieneś być w stanie zrobić to za pomocą modelu UserSession (lub cokolwiek modelu dodanych który wynika z Authlogic :: Session :: Base):

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

dzięki! To pomogło mi też. –

+0

Czy UserSession.find nie zwraca obiektu UserSession, a nie obiektu User? bieżącym użytkownikiem byłby UserSession.find.user –

+1

John Pignata jest poprawny. Sesja przechowuje model acts_as_authentic w rekordzie zmiennej, który jest taki sam niezależnie od nazwy modelu acts_as_authentic. –