2012-01-24 2 views
2

내에 정의 :루비 이름이 같은 루비 코드를

module Hello 

    class Hi 

    def initialize() 
     puts self.module.name //Should print "Hello" 
    end 

    end 
end 

어떻게 클래스에 포함되어있는 모듈의 이름을 얻을 수 있나요? 감사

+1

목적은 무엇입니까? –

답변

3

당신은 Module::nesting 방법으로이 작업을 수행 할 수 있습니다

→ 배열

이 모듈의 목록이 호출의 시점에서 중첩 된 반환 중첩. 당신이 인스턴스 메서드에서이 값을 얻고 싶다면

module M 
    class C 
    Module.nesting[1] # => M 
    end 
end 

, 당신은 클래스 변수에 할당 할 수 있습니다 :

module Hello  
    class Hi 
    @@parent = Module.nesting[1] 

    def initialize() 
     puts @@parent # => Hello 
    end 
    end 
end