2012-10-01 4 views
2

다음과 같이 작업하고 싶습니다. 아이디어는 Routes에 메소드를 추가 할 수 있고, 존재한다면 나중에 사용할 수 있다는 것입니다. 나는 Ruby 1.8을 사용하고있다. 당신이 그것을 할 수있는 다음 코드로리플렉션을 통해 어떻게 루비 모듈 메소드를 호출합니까?

module Routes 
    def home 
    #stuff 
    end 

    def work 
    #end 
    end 
end 

Routes.method_defined? :home 
# true 

Routes.send(:home) 
#NoMethodError: undefined method `home' for Routes:Module 
+0

나는 이러한 클래스 메소드하지만 모듈의 클래스 대신 인스턴스 메소드없는 방법에 대한 뭔가를 누락 확실 해요? 나는 혼란스러워. – reconbot

+0

[가능한 경우이를 포함하지 않고 Ruby 모듈에서 인스턴스 메서드를 호출 할 수 있습니까?] (http://stackoverflow.com/questions/322470/can-i-invoke-an-instance-method-on-a-ruby -module-without-including-it) –

답변

3

:

Class.new.extend(Routes).send(:home) 
+0

실제로이 동작을 원하지 않지만 문서를 읽는 것은 모듈 방법으로 바꾸지 않는 한 유일한 방법입니다. 내가 가진 방법은 인스턴스 메소드입니다. – reconbot

+0

또 다른 질문이 있습니다. 모듈 방법이 정의되었는지 어떻게 알 수 있습니까? – reconbot

+0

이전에 OP에서 확인 했습니까? :) –

관련 문제