I Rubin, trenger du ikke å erklære variabler, men du må tildele dem noe før de kan henvises til.
Hvis du viser til en lokal variabel som ikke eksisterer ennå, kan du se en av to feil.
Ruby NameError-meldinger
NameError: udefinert lokal variabel eller metode `a 'for #
NameError: udefinert lokal variabel eller metode `a 'for main: Object
Merk: Det kan være forskjellige identifikatorer i stedet for 'en' ovenfor.
Dette er et eksempel der koden vil generere Ruby "NameError" -meldingen siden variabelen en har ennå ikke blitt tildelt noe:
setter en
Slik løser du feilen
Variabler må tilordnes før de kan brukes. Så å bruke eksemplet ovenfra, å fikse feilen er så enkelt som å gjøre dette:
a = 10. setter en.
Hvorfor du får denne feilen
Det åpenbare svaret er at du viser til en variabel som ennå ikke er opprettet. Dette skyldes ofte en skrivefeil, men kan skje når du refakturerer kode og gir nytt navn til variabler.
Du kan også se Ruby-feilen "NameError: undefined local variabel" hvis du hadde tenkt å legge inn en streng. Strenger forstås når de eksisterer mellom sitater. Hvis du ikke brukte anførselstegn, vil Ruby tro at du mente å referere til en metode eller variabel (som ikke eksisterer) og kaste feilen.
Så, se tilbake på koden din for å se hva denne variabelen skal referere til, og fikse den. Det kan også være lurt å søke etter andre forekomster av samme variabelnavn på samme metode - hvis det er galt et sted, kan det være galt på andre.