假设我有:
class A
include B
include C
end
module B
def test_method
puts "Executed second"
end
end
module C
def super_calling
proc { super }
end
def test_method
"Executed first"
super_calling.call
end
end
我希望proc { super }
在 function 的上下文中执行该块C::test_method
,这样B::test_method
就会被调用,但是我得到一个错误,上面写着:“super_calling has not superclass”或类似的东西(不记得确切)。
C::test_method
如果这样定义,一切正常(难怪) :
def test_method
"Executed first"
super
end
我的问题是 - 我对 Ruby 的要求太多了,还是有什么我不明白的地方?有人可以解释一下吗?