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