Opravte chybu Ruby „NameError: nedefinovaná lokálna premenná“.
Ak odkazujete na neexistujúce premenné, zobrazí sa takáto chyba
Epoxydude/Getty Images
InRuby, nemusíte deklarovať premenné, ale musíte im niečo priradiť, aby ste na ne mohli odkazovať.
Ak máte na mysli a lokálna premenná ktorý ešte neexistuje, môžete vidieť jednu z dvoch chýb.
Chybové hlásenia názvu Ruby
|_+_| |_+_|Poznámka: Namiesto nich môžu byť rôzne identifikátory 'a' vyššie.
Toto je príklad, kde kód vygeneruje správu Ruby 'NameError' od premennej a ešte nebol k ničomu priradený:
|_+_|Ako opraviť chybu
Premenné musia byť pred použitím priradené. Takže pomocou vyššie uvedeného príkladu je oprava chyby taká jednoduchá:
|_+_|Prečo sa vám zobrazuje táto chyba
Zjavnou odpoveďou je, že máte na mysli premennú, ktorá ešte nebola vytvorená. Najčastejšie je to kvôli preklepu, ale môže sa to stať pri refaktorovaní kódu a premenovávaní premenných.
Ak ste chceli zadať reťazec, môže sa vám zobraziť aj chyba „NameError: undefined local variable“ Ruby. Reťazcom sa rozumie, ak existujú medzi úvodzovkami. Ak ste nepoužili úvodzovky, Ruby si bude myslieť, že ste chceli odkazovať na metódu alebo premennú (ktorá neexistuje) a vyhodí chybu.
Pozrite sa späť na svoj kód, aby ste zistili, na čo má táto premenná odkazovať, a opravte to. Môžete tiež chcieť vyhľadať iné výskyty toho istého názvu premennej tou istou metódou – ak je chybná na jednom mieste, môže byť chybná aj na iných.