Rett opp en Ruby 'NameError: undefined local variabel'-feil

Du vil se en feil som denne hvis du refererer til ikke-eksisterende variabler

Bilde av en feilmelding på en dataskjerm

Epoxydude/Getty Images





IRubin, du trenger ikke å deklarere variabler, men du må tilordne dem noe før de kan refereres til.

Hvis du sikter til en lokal variabel som ikke eksisterer ennå, kan det hende du ser en av to feil.

Ruby NameFeilmeldinger

|_+_| |_+_|

Merk: Det kan være ulike 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:

|_+_|

Hvordan fikse feilen

Variabler må tilordnes før de kan brukes. Så ved å bruke eksemplet ovenfra er det så enkelt å fikse feilen som å gjøre dette:

|_+_|

Hvorfor du får denne feilen

Det åpenbare svaret er at du refererer til en variabel som ennå ikke er opprettet. Dette er oftest på grunn av en skrivefeil, men kan skje ved refaktorisering av kode og endre navn på variabler.

Du kan også se Ruby-feilen 'NameError: undefined local variabel' hvis du hadde tenkt å skrive inn en streng. Strenger forstås når de eksisterer mellom anførselstegn. 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 fiks den. Det kan også være lurt å søke etter andre forekomster av samme variabelnavn i samme metode - hvis det er feil på ett sted, kan det være feil på andre.