2009-10-12 2 views
6

Ryan Bates가 Authlogic Railscast에서 사용하는 레코드라는이 메서드를 발견했으며 그 코드가 무엇을하는지 이해하지 못하는 것 같습니다. 나는 문서를 훑어 보았지만 그 도우미가 어떻게 유용한지를 따라갈 수 없다.Authlogic 레코드 메소드입니다. 이것은 무엇을 하는가

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

    current_user_session && current_user_session.record 
end 

는 내가 알고 싶은 것은이 단순히 데이터베이스에서 레코드를 가져 않습니다이며 왜 데이터베이스에서 데이터를 가져 오는의 표준 방법과 다릅니다.

감사합니다.

답변

9

이 "레코드"방법은 UserSession과 User 모델 간의 belongs_to 관계입니다. 따라서 세션을 기반으로 사용자를 반환합니다.

그러나 documentation을 기반으로 더 이상 '기록'이 아닙니다. 그러나 "사용자". 따라서 current_user 도우미 메서드는 다음과 같아야합니다.

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

고맙습니다. 정말 도움이되었습니다. 건배 – Sid

관련 문제