Remediați o eroare Ruby „Variabilă locală nedefinită” Ruby

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

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

Ruby NameError Messages

NameError: variabilă locală nedefinită sau metoda „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 a 

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.

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 atunci 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 singur loc, poate fi greșit în altele.