I Rubin, 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 a lokal variabel som inte finns ännu, kan du se ett av två fel.
Ruby NameError Meddelanden
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
Hur du åtgärdar felet
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 en.
Varför du får det här felet
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 kanske också ser "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 på andra.