Quando criamos uma classe nós podemos criar um método que trata a chamada de métodos inexistentes.
class Foo
def method_missing ( method_id )
puts method_id
end
end
obj = Foo.new
obj.faz #chamando método inexistente. Ele devolverá "faz"
obj.vai #chamando método inexistente. Ele devolverá "vai"
Quando chamamos o método faz, ou o metodo vai, ele normalmente retornaria o erro: NoMethodError: undefined method ‘vai’ for #
Mas como redefinimos o método “method_missing” para que ele de um puts no nome do método que chamamos é isso que ele vai fazer quando chamarmos um método que não foi definido=)
Assim nós conseguimos tratar metodos que não existem em um objeto.
Comentários Recenter