2010-12-09 5 views

답변

7

@current_userinstance variable입니다. self.current_user은 현재 인스턴스 변수가 nil 인 경우 인스턴스 변수를 반환하는 10 행의 메서드를 호출합니다.

4

@current_userselfcurrent_user 메소드를 호출 self.current_user 반면 객체의 실제 속성에 액세스한다.

이이 같은 일을 할 수있는 의미

def current_user 
    @current_user.first_name 
end 

는 이제 @current_user에 접근하는 것은 여전히 ​​당신에게 재산을 줄 것이다하지만 self.current_user 당신만을 다시 이름을 제공 할 것입니다.

특정 예제에서는 개체 캐시를 사용하여 처음 액세스 할 때만 @current_user 속성을 설정합니다. 즉, @current_user이 nil이면 (login_from_session || login_from_basic_auth || login_from_cookie)이됩니다. 그렇지 않으면 기존 객체를 다시 초기화하지 않고 반환합니다.

1
@current_user 

@current_user이라는 인스턴스 변수를 참조합니다.

self.current_user 

self에 메시지를 :current_user를 보냅니다.

관련 문제