Napraw błąd Ruby „NameError: niezdefiniowana zmienna lokalna”

Zobaczysz taki błąd, jeśli odwołujesz się do nieistniejących zmiennych

Obraz komunikatu o błędzie na ekranie komputera

Obrazy epoksydowe/Getty





WRubin, nie musisz deklarować zmiennych, ale musisz coś do nich przypisać, zanim będzie można się do nich odnieść.

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

Ruby Name Komunikaty o błędach

|_+_| |_+_|

Notatka: Mogą istnieć różne identyfikatory zamiast 'a' nad.

To jest przykład, w którym kod wygeneruje komunikat Ruby 'NameError', ponieważ zmienna a nie została jeszcze do niczego przypisana:

|_+_|

Jak naprawić błąd

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

|_+_|

Dlaczego pojawia się ten błąd

Oczywistą odpowiedzią jest to, że odnosisz się do zmiennej, która nie została jeszcze utworzona. Najczęściej jest to spowodowane literówką, ale może się zdarzyć podczas refaktoryzacji kodu i zmiany nazw zmiennych.

Możesz również zobaczyć błąd Rubiego 'NameError: undefined local variable', jeśli zamierzasz wprowadzić ciąg. Łańcuchy 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 to. Możesz także chcieć wyszukać inne wystąpienia tej samej nazwy zmiennej w tej samej metodzie - jeśli jest niepoprawna w jednym miejscu, może być niewłaściwa w innych.