Zajmuję się zawieszaniem konsoli Railsów i znajduję ją przydatną do szybkiego testowania metod na moich zajęciach. Wiem, że mogę dokonać zmian w moich modeli, a następnieJakie są powody "przeładuj!" nie zawsze działa w konsoli Rails?
> reload!
aby pobrać te aktualizacje, ale czasem znajdę to, że nie wydaje się, aby przeładować mój najnowszy kod. Czy gdzieś w Railsach jest jakiś kod pamięci podręcznej?
w bardzo prosty przykład pseudo, może mam zły kod na linii 100:
100: u = User.alll
aw konsoli Rails, kiedy uruchomić ten sposób, że mogę się błąd podobny do:
NoMethodError: undefined method `alll' for User:Class ... on line 100
następnie zmodyfikować mój kod, ustalenie błędu
100: u = User.all
następnie przeładować:
> reload!
a następnie, gdy wywołanie metody w tej klasie, który ma prawidłowy kod, to nadal będzie powiedzieć
NoMethodError: undefined method `alll' for User:Class ... on line 100
Kiedy wyraźnie, błąd jest ustalona, a linia nie jest jeszcze wykraczająca na linii 100 już. Czy istnieje sposób na wymuszenie/trudne resetowanie "przeładowania!" dowództwo?
Tak, to był dokładnie problem. Utworzone wystąpienia nie "ładują się ponownie". Po ponownym wczytaniu! -ing i ponownym tworzeniu instancji, rzeczy działają świetnie za każdym razem. Dzięki @flambino – jbnunn