Jak rozwiązać problem z „niezdefiniowaną zmienną lokalną” Ruby Error

W Rubin, nie musisz deklarować zmiennych, ale musisz im coś przypisać, zanim będzie można się do nich odwołać.

Jeśli masz na myśli a zmienna lokalna który jeszcze nie istnieje, możesz zobaczyć jeden z dwóch błędów.

Ruby NameError Messages

NameError: niezdefiniowana zmienna lokalna lub metoda `a 'dla # 
NameError: niezdefiniowana zmienna lokalna lub metoda `a 'dla main: Object

Uwaga: Zamiast nazwy mogą znajdować się różne identyfikatory 'za' powyżej.

Jest to przykład, w którym kod wygeneruje komunikat Ruby „NameError” od zmiennej za nie został jeszcze przypisany do niczego:

stawia

Jak naprawić błąd

Zmienne muszą zostać przypisane przed ich użyciem. Tak więc, korzystając z powyższego przykładu, naprawienie błędu jest tak proste, jak to zrobić:

a = 10. stawia. 

Dlaczego otrzymujesz ten błąd

Oczywistą odpowiedzią jest to, że masz na myśli zmienną, która nie została jeszcze utworzona. Jest to najczęściej spowodowane literówką, ale może się zdarzyć podczas refaktoryzacji kodu i zmiany nazw zmiennych.

instagram viewer

Możesz także zobaczyć błąd „NameError: niezdefiniowana zmienna lokalna” Ruby, jeśli chciałeś wprowadzić ciąg. Ciągi są rozumiane, gdy istnieją między cudzysłowami. Jeśli nie użyłeś cudzysłowów, Ruby pomyśli, że chciałeś odwołać się do metody lub zmiennej (która nie istnieje) i zgłosić błąd.

Więc spójrz wstecz na swój kod, aby zobaczyć, do czego ta zmienna ma się odnosić, i napraw go. Możesz także szukać innych instancji o tej samej nazwie zmiennej w tej samej metodzie - jeśli jest niepoprawna w jednym miejscu, może być niepoprawna w innych.