我想在类D
中添加一些由实例方法和类方法组成的常用功能。我尝试像下面这样做,但它没有用。实现这一目标的正确方法是什么?
module A
def foo
puts "foo!"
end
end
module B
def wow
puts "wow!"
end
end
module C
include A # instance methods
extend B # class methods
end
class D
include C
end
D.new.foo
D.wow
答案 0 :(得分:6)
你必须像这样定义C才能做你想做的事:
module C
include A
def self.included( base )
base.extend B #"base" here is "D"
end
end