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が発生します。ここでスーパーはMyClassのスーパークラスだと思います。ただし、ここでは欠落しているメソッドを一緒に呼び出さずにsuperを呼び出しているだけなので、NoMethodErrorはどのように発生しますか?

4

1 に答える 1

3

あなたの仮定は間違っています。superのスーパークラスではありませんMyClass。これは、のスーパークラスにある同じ名前のメソッドの呼び出しですMyClass

于 2013-03-25T03:44:37.807 に答える