2010-08-06 6 views
1

Ruby에서 처음부터 랙 웹 응용 프로그램을 작성 중이므로 앱의 모든 클래스에서 여러 객체의 인스턴스를 공유하고 싶습니다. 예를 들어, 로거, 요청 정보, 현재 인증 된 사용자, 매개 변수 가져 오기/붙여 넣기 등맞춤 웹 응용 프로그램의 객체/클래스에서 인스턴스 데이터 공유

PHP에 익숙한 사용자라면 이전에는 정적 변수를 사용하여이를 수행했습니다. self :: $ params는 기본 클래스에서 상속 한 모든 클래스의 모든 인스턴스에서 공유됩니다.

루비로이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

2

구문은 $ 루비의 '글로벌'접근성 수정이다 루비

$variable = value

비슷합니다. $variable을 사용하는 앱의 모든 코드는 변수 데이터에 액세스합니다.

(내가 선호하는) 다른 방법도, 당신은 클래스 수준의 방법을 사용할 수 있습니다

class MyClass 
    def self.logger 
    @logger 
    end 
end

은 다음 MyClass.logger

와 세 번째를 사용하여 응용 프로그램에서이 어디서나 액세스 할 수 있습니다, 당신은 상수를 지정할 수 있습니다 원하는 값 (나중에 값을 변경하지 않으려는 경우). 대문자로 시작

MyContant = myvalue

아무것도 상수이다.

관련 문제