Cum să rezolvați o eroare Ruby „variabilă locală nedefinită”

În Rubin, nu trebuie să declarați variabile, dar trebuie să le atribuiți ceva înainte de a le face referire.

Dacă te referi la variabilă locală care încă nu există, este posibil să vedeți una dintre cele două erori.

Ruby NameError Messages

NameError: variabilă locală nedefinită sau metodă `a 'pentru # 
NameError: variabilă locală nedefinită sau metoda `a 'pentru principal: Obiect

Notă: Ar putea exista mai mulți identificatori în locul 'A' de mai sus.

Acesta este un exemplu în care codul va genera mesajul Ruby „NameError” de la variabilă A nu a fost încă atribuit la nimic:

pune un

Cum să remediați eroarea

Variabilele trebuie alocate înainte de a putea fi utilizate. Așadar, folosind exemplul de mai sus, remedierea erorii este la fel de simplu ca acest lucru:

a = 10. pune un. 

De ce primești această eroare

Răspunsul evident este că te referi la o variabilă care nu a fost încă creată. Acest lucru se datorează cel mai adesea unei tipografii, dar se poate întâmpla la refactorizarea codului și redenumirea variabilelor.

instagram viewer

S-ar putea să vedeți eroarea Ruby „NameError: variabilă locală nedefinită” dacă intenționați să introduceți un șir. Șirurile sunt înțelese când există între ghilimele. Dacă nu ați utilizat ghilimele, Ruby va crede că intenționați să faceți referire la o metodă sau o variabilă (care nu există) și să aruncați eroarea.

Așadar, priviți înapoi codul dvs. pentru a vedea la ce se presupune că se referă această variabilă și reparați-o. De asemenea, poate doriți să căutați alte instanțe cu același nume de variabilă în aceeași metodă - dacă este greșit într-un loc, poate fi greșit în altele.