在 Ruby 中,我可以这样做:
module Foo
end
class Bar
include Foo
end
module Foo
def do_something_instancey
puts "I'm an instance!"
end
end
然后,如果我实例化一个Bar
对象,我可以调用do_something_instancey
它:
b = Bar.new
b.do_something_instancey
但是,如果我这样做...
module Foo
def self.included(base)
def base.do_something_classy do
puts "I'm a class!"
end
end
end
我的理解是,因为我Foo
在定义该类方法Bar
之前包含在内,所以我无法调用Bar.do_something_classy
,因为它从未“附加”到Bar
.
我意识到这可能有点不准确/不是真正正确的术语。无论如何,在上面的例子中,有没有办法在模块已经包含之后Bar
附加一个类方法?Foo