我試圖定義一對模塊輕鬆一些實例和類方法的其他類加內,這裏是我在做什麼:紅寶石 - 擴展模塊另一個模塊
module Foo
module Bar
def speak
puts "hey there"
end
end
module Baz
extend Foo::Bar
def welcome
puts "welcome, this is an instance method"
end
end
end
class Talker
include Foo::Baz
end
Talker.new.welcome
Talker.speak
的輸出這是:
welcome, this is an instance method
undefined method 'speak' for Talker.class (NoMethodError)
我期待Talker有'speak'方法,因爲它包含Foo :: Baz,它本身擴展了Foo :: Bar。
我缺少什麼?
所以如果我讓Baz成爲一個類而不是一個模塊,並且我改變了Talker,所以它是Baz的子類,我的示例工作。但是,如果不讓巴茲成爲一個班級,我可以做什麼? (而不必像Talker :: Foo :: Bar.speak那樣做) – codecraig 2011-03-30 14:16:12