除了在同一模块中使用此方法的类外,如何定义方法?
我想做什么:
module X
def bar
puts 'Hello'
end
class Y
def foo
bar
end
end
end
我想使用bar
来调用Y.new.foo
方法。我想在我的模块中定义方法,以便该模块中的所有类都将继承它们。
为什么这不起作用?最接近的方法是什么?
答案 0 :(得分:3)
答案 1 :(得分:1)
我认为最好使用单独的对象来定义共享方法,而不是污染名称空间对象。
module X
module InstanceMethods
def bar
puts 'Hello'
end
end
class Y
include InstanceMethods
def foo
bar
end
end
end
答案 2 :(得分:0)
如果你想使用很多方法,最好使用include
module X
def bar
puts 'Hello'
end
class Y
include X
def foo
bar
end
end
end