2010-12-16 18 views
2

Ich bin ein Rails-Programmierer. Und rails sagt mir immer, dass ich "NoMethodError" habe. Warum bekomme ich keinen MethodError? Ich möchte einen MethodError.Warum erhalte ich keinen Methodenfehler?

Bitte helfen Sie mir.

Edit:

Hier ist mein Code:

42.this_is_a_method 
+0

uns Zeigen Sie, wie Sie eine 'NoMethodError' mit Rails bekommen. –

+0

können Sie den Code eingeben? –

+6

Bitte sagen Sie mir, das ist kein Witz. –

Antwort

3

Rubin hat keine MethodError. Aber du kannst eins machen!

class MethodError < NoMethodError; end 

nun alle NoMethodErrors auf diese Weise fangen:

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

viel zu kompliziert. Tun Sie einfach 'MethodError = NoMethodError'. –

+2

@Joerg: Wenn Sie einen "MethodError" ausgelöst haben, erhalten Sie 'NoMethodError: NoMethodError'. Das liegt daran, dass 'MethodError.name'' NoMethodError' zurückgibt. –

3

Sie würden eine NoMethodError weil die Fixnum Klasse keinen this_is_a_method für Instanzen dieser Klasse definiert werden, zu bekommen.

Verwandte Themen