I Ruby behöver du inte deklarera variabler, men du måste tilldela dem något innan de kan hänvisas till dem.
Om du hänvisar till en lokal variabel som ännu inte finns kan du se ett av två fel.
NameError: odefinierad lokal variabel eller metod 'a' för #
NameError: odefinierad lokal variabel eller metod 'a' för main: Object
Notera: Det kan finnas olika identifierare istället för 'A' ovan.
Detta är ett exempel där koden genererar Ruby "NameError" -meddelandet sedan variabeln en har ännu inte tilldelats något:
sätter en
Variabler måste tilldelas innan de kan användas. Så att använda exemplet ovan är att fixa felet är så enkelt som att göra detta:
a = 10 sätter a
Det uppenbara svaret är att du refererar till en variabel som ännu inte har skapats. Detta beror ofta på en skrivfel, men det kan hända vid omfakturering av kod och namnbyte av variabler.
Du kan också se "NameError: undefined local variabel" Ruby-fel om du tänkte ange en sträng. Strängar förstås när de finns mellan citat. Om du inte använde citat tror Ruby att du tänkte referera till en metod eller variabel (som inte finns) och kasta felet.
Så titta tillbaka på din kod för att se vad den här variabeln ska tänka på och fixa den. Du kanske också vill söka efter andra instanser av samma variabelnamn på samma metod - om det är fel på ett ställe, kan det vara fel i andra.