2016-09-02 3 views
1
class Foo 
    include Bar 
    include Baz 
end 

module Bar 
    def do_something 
    end 
end 

module Baz 
    do_something 
end 

Baz 모듈에는 Bar에 대한 액세스 권한이 없습니다. 메서드가 Bar에서 호출 할 수있는 방법이 있습니까? BarBaz을 연장하지만, 내가 원하는에 대신 Foo에서 그들에게 모두 포함에Ruby에서 다른 모듈에 정의 된 메소드를 호출하는 방법은 무엇입니까?

한 가지 방법이다.

+0

'때문에 do_something' 만에서 호출 Baz. –

답변

2

어떤 이유로 당신이 하지 않으려면 BarBaz, 당신은 BarBaz 내부 확장 있다는 개체를 만들 수 있습니다 확장 :

module Bar 
    def do_something 
    puts 42 
    end 
end 

module Baz 
    Object.new.extend(Bar).do_something # prints 42 
end 
관련 문제