Behebung eines Ruby-Fehlers NameError undefined local variable

In Ruby müssen Sie keine Variablen deklarieren, aber Sie müssen ihnen etwas zuweisen, bevor auf sie verwiesen werden kann.

Wenn Sie auf eine lokale Variable verweisen, die noch nicht vorhanden ist, wird möglicherweise einer von zwei Fehlern angezeigt.

Ruby NameError-Meldungen

NameError: undefinierte lokale Variable oder Methode 'a' für # 
NameError: undefinierte lokale Variable oder Methode 'a' für main: Object

Hinweis: Es kann verschiedene Bezeichner anstelle von geben 'ein' über.

In diesem Beispiel generiert der Code die Ruby-Nachricht "NameError" seit der Variablen ein hat noch nichts zugeordnet:

setzt ein

So beheben Sie den Fehler

Variablen müssen zugewiesen werden, bevor sie verwendet werden können. Anhand des obigen Beispiels ist es also so einfach, den Fehler zu beheben:

a = 10 setzt a 

Warum bekommst du diesen Fehler?

Die offensichtliche Antwort ist, dass Sie auf eine Variable verweisen, die noch nicht erstellt wurde. Dies ist meistens auf einen Tippfehler zurückzuführen, kann jedoch beim Umgestalten von Code und beim Umbenennen von Variablen auftreten.

Möglicherweise wird auch der Ruby-Fehler "NameError: undefined local variable" angezeigt, wenn Sie beabsichtigen, eine Zeichenfolge einzugeben. Zeichenfolgen werden verstanden, wenn sie zwischen Anführungszeichen stehen. Wenn Sie keine Anführungszeichen verwendet haben, wird Ruby denken, Sie wollten auf eine Methode oder Variable verweisen (die nicht existiert) und den Fehler auslösen.

Sehen Sie sich also Ihren Code noch einmal an, um herauszufinden, worauf sich diese Variable beziehen soll, und korrigieren Sie sie. Möglicherweise möchten Sie auch nach anderen Instanzen desselben Variablennamens mit derselben Methode suchen. Wenn dies an einer Stelle falsch ist, ist dies möglicherweise auch an anderen Stellen falsch.