Repareer een Ruby 'NameError: undefined local variable' Error
U ziet een fout als deze als u verwijst naar niet-bestaande variabelen
Epoxydude/Getty Images
InRobijn, hoef je variabelen niet te declareren, maar je moet er wel iets aan toewijzen voordat er naar kan worden verwezen.
Als je verwijst naar een lokale variabele die nog niet bestaat, ziet u mogelijk een van de twee fouten.
Ruby NameFoutmeldingen
|__+_| |__+_|Opmerking: Er kunnen verschillende identifiers zijn in plaats van 'a' bovenstaande.
Dit is een voorbeeld waarbij de code het Ruby 'NameError'-bericht zal genereren sinds de variabele a is nog niets toegewezen:
|__+_|Hoe de fout te herstellen
Variabelen moeten worden toegewezen voordat ze kunnen worden gebruikt. Dus, met behulp van het bovenstaande voorbeeld, is het oplossen van de fout net zo eenvoudig als dit:
|__+_|Waarom u deze fout krijgt
Het voor de hand liggende antwoord is dat je verwijst naar een variabele die nog niet is gemaakt. Dit is meestal te wijten aan een typefout, maar kan gebeuren bij het herstructureren van code en het hernoemen van variabelen.
Mogelijk ziet u ook de Ruby-fout 'NameError: undefined local variable' als u van plan was een tekenreeks in te voeren. Tekenreeksen worden begrepen als ze tussen aanhalingstekens staan. Als je geen aanhalingstekens hebt gebruikt, zal Ruby denken dat je bedoelde te verwijzen naar een methode of variabele (die niet bestaat) en de fout veroorzaken.
Dus kijk terug in je code om te zien waar deze variabele naar zou moeten verwijzen, en repareer het. U kunt ook zoeken naar andere instanties van dezelfde variabelenaam met dezelfde methode - als het op de ene plaats fout is, kan het op andere ook fout zijn.