In Ruby hoeft u geen variabelen te declareren, maar u moet er wel iets aan toewijzen voordat naar hen kan worden verwezen.
Als u verwijst naar een lokale variabele die nog niet bestaat, ziet u mogelijk een van de twee fouten.
NameError: niet-gedefinieerde lokale variabele of methode 'a' voor #
NameError: niet-gedefinieerde lokale variabele of methode 'a' voor main: Object
Notitie: Er kunnen verschillende ID's zijn in plaats van 'een' bovenstaand.
Dit is een voorbeeld waarbij de code het Ruby "NameError" -bericht genereert sinds de variabele een is nog aan niets toegewezen:
zet een
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:
a = 10 zet a
Het voor de hand liggende antwoord is dat u verwijst naar een variabele die nog niet is gemaakt. Dit is meestal te wijten aan een typefout, maar kan voorkomen bij het opnieuw wijzigen van code en het hernoemen van variabelen.
Mogelijk ziet u ook de Ruby-fout 'NameError: undefined local variable' als u van plan bent een string in te voeren. Tekenreeksen worden begrepen wanneer ze tussen aanhalingstekens bestaan. Als je geen aanhalingstekens hebt gebruikt, zal Ruby denken dat je van plan was om naar een methode of variabele te verwijzen (die niet bestaat) en de fout te gooien.
Kijk dus terug op uw code om te zien waarnaar deze variabele zou moeten verwijzen en repareer deze. Misschien wilt u ook zoeken naar andere instanties van dezelfde variabelenaam in dezelfde methode - als het op de ene plaats verkeerd is, kan het op de andere verkeerd zijn.