Tôi chỉ đang bị treo bảng điều khiển Rails và thấy nó hữu ích để nhanh chóng thử nghiệm các phương thức trong các lớp học của tôi. Tôi biết rằng tôi có thể thực hiện các thay đổi đối với Mô hình của mình, sau đóLý do "tải lại!" không phải lúc nào cũng hoạt động trong giao diện điều khiển Rails?
> reload!
để lấy các bản cập nhật đó, nhưng đôi khi tôi thấy rằng nó dường như không tải lại mã mới nhất của tôi. Có Rails cache code ở đâu đó?
Trong một ví dụ giả thực sự đơn giản, tôi có thể có mã xấu trên đường dây 100:
100: u = User.alll
và trong Rails giao diện điều khiển, khi tôi chạy phương pháp này, tôi có thể nhận được một lỗi tương tự như:
NoMethodError: undefined method `alll' for User:Class ... on line 100
sau đó sửa đổi mã của tôi, sửa chữa các lỗi
100: u = User.all
sau đó tải lại:
> reload!
và sau đó, khi gọi phương thức trong lớp này có mã đúng, nó vẫn sẽ nói
NoMethodError: undefined method `alll' for User:Class ... on line 100
Khi rõ ràng, lỗi là cố định, và dòng vi phạm thậm chí không trên dòng 100 nữa. Có cách nào để buộc/cứng đặt lại "tải lại!" chỉ huy?
Có điều này chính xác là vấn đề. Các trường hợp bạn tạo không "tải lại". Sau khi tải lại! -ing và tái instantiating, mọi thứ làm việc tuyệt vời mỗi lần. Cảm ơn @flambino – jbnunn