这就是我想要做的,大致:
module Foo
def self.included base
base.extend ClassMethods
end
end
module Bar
extend Foo
module ClassMethods
def hi
return "hello!"
end
end
end
class Baz
include Bar
end
Baz.hi #=> "hello!'
但相反我得到
NoMethodError: undefined method `hi' for Baz:Class
如果不清楚,更一般地说,我想做的是创建一个包含included
回调逻辑的模块,然后扩展其他几个模块,我希望它们使用included
扩展模块中的回调(但如果,例如,Bar
extends Foo
,如果可能的话,我想在闭包中self
引用)。Bar
included
可能这有点令人困惑。