class Foo
include Bar
include Baz
end
module Bar
def do_something
end
end
module Baz
do_something
end
Baz
模块无权访问 Bar
。有没有办法让它调用Bar
中的方法?
一种方法是使用 Bar
来扩展 Baz
,但我想将它们全部包含在 中>Foo
相反。
最佳答案
如果出于某种原因您不想使用 Bar
来扩展 Baz
,您可以创建一个对象> 延伸 Baz
内的 Bar
:
module Bar
def do_something
puts 42
end
end
module Baz
Object.new.extend(Bar).do_something # prints 42
end
关于ruby - 如何在Ruby中调用另一个模块中定义的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299326/