Î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.
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
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
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.