2
class MyClass
  def method_missing(id,*args,&block)
    return A if something
    return B if something_else
    super
  end
end

这里如果 A 和 B 都没有返回,则调用 super,这将引发 NoMethodError。我想这里的 super 是 MyClass 的超类。但是,NoMethodError 是如何引发的,因为这里我们只调用 super 而没有同时调用缺少的方法?

4

1 回答 1

3

你的假设是错误的。super不是 的超类MyClass。它是对超类的同名方法的调用MyClass

于 2013-03-25T03:44:37.807 回答