class Foo
include Bar
include Baz
end
module Bar
def do_something
end
end
module Baz
do_something
end
Baz
模块无权访问Bar
。有没有办法在Bar
中调用方法?
一种方法是使用Baz
扩展 Bar
,但我想在Foo
中包含所有内容。< / p>
答案 0 :(得分:2)
如果出于某种原因,您不想 Baz
Bar
,那么您可以创建一个对象 在Bar
内扩展 Baz
:
module Bar
def do_something
puts 42
end
end
module Baz
Object.new.extend(Bar).do_something # prints 42
end