Hur man löser en "odefinierad lokal variabel" Ruby Error

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.

instagram viewer

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.

instagram story viewer