2009-10-12 6 views
6

Ich stieß auf diese Methode namens Datensatz, die Ryan Bates in seinem authlogic Railscast verwendet und kann nicht zu verstehen, was es tut. Ich habe die Dokumentation durchgelesen, aber ich kann nicht nachvollziehen, wie dieser Helfer nützlich ist.Die Authlogic-Aufzeichnungsmethode. Was macht dies

def current_user 
    return @current_user if defined?(@current_user) 

    current_user_session && current_user_session.record 
end 

Was ich weiß, ist, bedeutet dies einfach den Datensatz aus der Datenbank holen und warum ist es unterscheidet sich von der Standard-Weg, um Daten aus der Datenbank zu holen.

Vielen Dank.

Antwort

9

Diese "record" -Methode ist eine Zugehörigkeitsbeziehung zwischen den UserSession- und den User-Modellen. Basierend auf der Sitzung wird der Benutzer zurückgegeben.

Allerdings basierend auf der documentation, ist es nicht mehr "aufzeichnen". Aber "Benutzer". So sollte Ihre current_user Hilfsmethode die folgende sein:

def current_user 
    return @current_user if defined?(@current_user) 
    @current_user = current_user_session && current_user_session.user 
end 
+0

Vielen Dank. Das war sehr hilfreich. Prost – Sid