2010-12-16 316 views
2

Je suis un programmeur de rails. Et les rails me disent toujours que j'ai "NoMethodError". Pourquoi ne reçois-je pas MethodError? Je veux un MethodError.Pourquoi n'ai-je pas une erreur de méthode?

S'il vous plaît aidez-moi.

Edit:

Voici mon code:

42.this_is_a_method 
+0

Montrez-nous comment vous obtenez un 'NoMethodError' avec Rails. –

+0

pouvez-vous mettre le code? –

+6

S'il vous plaît dites-moi ce n'est pas une blague. –

Répondre

3

Ruby n'a pas d'erreur MethodError. Mais vous pouvez en faire un!

class MethodError < NoMethodError; end 

Maintenant, attraper tous les NoMethodErrors de cette façon:

class Object 
    def method_missing(m) 
    raise MethodError, "undefined method `#{m}' for #{self.inspect}:#{self.class}" 
    end 
end 
+4

Beaucoup trop compliqué. Faites simplement 'MethodError = NoMethodError'. –

+2

@Joerg: Si vous avez déclenché un 'MethodError', vous obtiendrez' NoMethodError: NoMethodError'. C'est parce que 'MethodError.name' retournerait' NoMethodError'. –

3

Vous obtiendrez un NoMethodError parce que la classe Fixnum ne dispose pas d'un this_is_a_method défini pour les instances de cette classe.