上級 › method_missing で super を呼ばないと本来のエラーが消える › パターン1
method_missing で super を呼ばないと本来のエラーが消える
method_missingを独自定義すると、未定義のメソッド呼び出しをすべて横取りできます。
1 class Ghost 2 def method_missing(name, *args) 3 name == :boo ? "Boo!" : super 4 end 5 6 ________________________________________________________________________________________ ^ 7 end 8 9 g = Ghost.new 10 puts g.respond_to?(:boo)
出力: false
空欄を埋めて実行を通す
method_missingで応答できるようにしたメソッドでも、respond_to_missing?を実装しない限りrespond_to?は「知らない」と答えてしまいます。
次の問題