나는이 루비 코드를 찾고 그리고 그들은을 참조합니다self.current_user와 @current_user 사이에 차이점이 있습니까?
@current_user
및
self.current_user
의 차이점은 무엇입니까?
http://code.google.com/p/openplaques/source/browse/trunk/www/lib/authenticated_system.rb
나는이 루비 코드를 찾고 그리고 그들은을 참조합니다self.current_user와 @current_user 사이에 차이점이 있습니까?
@current_user
및
self.current_user
의 차이점은 무엇입니까?
http://code.google.com/p/openplaques/source/browse/trunk/www/lib/authenticated_system.rb
@current_user
은 instance variable입니다. self.current_user
은 현재 인스턴스 변수가 nil 인 경우 인스턴스 변수를 반환하는 10 행의 메서드를 호출합니다.
@current_user
는 self
의 current_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)
이됩니다. 그렇지 않으면 기존 객체를 다시 초기화하지 않고 반환합니다.
@current_user
은 @current_user
이라는 인스턴스 변수를 참조합니다.
self.current_user
는 self
에 메시지를 :current_user
를 보냅니다.