module Lab
def self.foo
puts 'foo from lab'
end
end
module M
def foo
puts 'foo from module'
super
end
end
module Lab
extend M
end
Lab.foo
我期待,我会看到为什么要扩展方法是不把看跌期权价值
foo from module
foo from lab
但是我所得到的是
foo from lab
我所试图做的是拦截一个来自宝石的方法的价值,并做一些事情。我可以使用alias_method_chain,但我试图不使用它。
我删除我的答案,因为这是不正确的(出于某种原因,人们反正upvoting它)。为了防止人们思考我的想法:上述代码中的方法都不是实例方法(因为“扩展”的工作原理)。 – 2011-06-13 23:40:03