假设我有:
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 }
的上下文中执行块C::test_method
,这样就可以调用B::test_method
,但是我收到的错误是:&#34 ; super_calling没有超类"或类似的东西(不记得确切)。
如果C::test_method
定义如下:
def test_method
"Executed first"
super
end
我的问题是 - 我从Ruby那里问过多,或者有些事情我不明白? 有人可以解释它吗?
答案 0 :(得分:1)
删除整个super_calling
,然后在super
中使用C::test_method
。
此时会调用B::test_method
。