2011-09-27 1 views
3

Hash을 상속받은 클래스가 있습니다. 이 클래스 자체가 상속되면 initialize 메서드 내에서 상속 클래스의 클래스 이름을 알고 싶습니다. self으로 전화 할 때 방법을 알지 못하는 {}이 나옵니다.해시에서 상속 된 클래스가 initialize 메서드 내에서 클래스 이름을 가져 오는 중

class Foo < Hash 
    def initialize 
    # Here i want to know that the class is Foo 
    end 
end 

클래스 이름을 어떻게 구합니까? 당신이 검사를 수행하려는 경우 self.class.name

답변

9

그것은 매우 간단 전화 할 때

if self.kind_of?(Foo) 
    #whatever you want 
end 

것은, 이니셜 라이저의 의도 때문이다 Foo. 인스턴스가 항상 푸 (Foo) 또는 하위 클래스의 인스턴스가 될 것이므로 여러분이하려는 일에 대해 혼란스러워합니다.

1

다니엘 브록의 대답은 당신에게 문자열을 반환합니다 :

관련 문제