Undefinierte Methode in Ruby behoben

Nurudeen Ibrahim 21 Juni 2023
Undefinierte Methode in Ruby behoben

Dieser Artikel behandelt die Behebung des häufigsten Fehlers in Ruby-Projekten, der undefinierten Methode.

Undefinierte Methode in Ruby behoben

Die undefinierte Methode wird auch als Ausnahme NoMethodError bezeichnet und ist laut The 2022 Airbrake Error Data Report der häufigste Fehler in Projekten.

Es tritt auf, wenn ein Empfänger (ein Objekt) eine Methode empfängt, die nicht existiert.

Undefinierte Methode für ein eingebautes Objekt

Der folgende Code zeigt, wie man einen NoMethodError-Fehler auf einem Array-Objekt auslöst, wenn wir darauf eine undefinierte Methode maximum aufrufen.

Beispielcode:

arr = [1, 2, 3, 7, 4]
puts arr.maximum

Ausgang:

undefined method `maximum' for [1, 2, 3, 7, 4]:Array (NoMethodError)

Undefinierte Methode für ein benutzerdefiniertes Objekt

Der folgende Code zeigt, wie ein NoMethodError-Fehler bei einem benutzerdefinierten Objekt ausgelöst wird.

Beispielcode:

class Employee
  def initialize(last_name, first_name)
    @last_name = last_name
    @first_name = first_name
  end

  def full_name
    "#{@first_name} #{@last_name}"
  end
end

employee1 = Employee.new('John', 'Doe')
puts employee1.fullname

Ausgang:

undefined method `fullname' for #<Employee:0x0000565026778608> (NoMethodError)
Did you mean? full_name

Im obigen Beispiel haben wir absichtlich fullname anstelle von full_name verwendet, und als Ergebnis konnte Ruby keine Übereinstimmung finden, fand aber einen Namen, der sehr ähnlich aussah. Also: Meinten Sie? full_name wurde zum Fehler-Traceback hinzugefügt.

Verwandter Artikel - Ruby Method