Tôi biết rằng bạn có thể làm một cái gì đó như thế này để nạp môi trường đường ray:ActiveRecord Migration & Rake không tải các mô hình?
task :my_task => :environment do
MyModel.find(1)
end
Nhưng có vẻ như các mã trong các mô hình không được thực thi. Tôi đang sử dụng actions_as_audited, và có một hàm lớp tốt đẹp mà lấy tất cả các mô hình đang được kiểm toán. Cuộc gọi trông giống như sau:
Audit.audited_classes
Và để xác định một mô hình như là có thể kiểm tra, bạn chỉ cần thêm dòng này vào mô hình của bạn:
acts_as_audited
Khi audited_classes được thực hiện trong giao diện điều khiển, tôi nhận được một loạt các tất cả các lớp được kiểm tra của tôi; tuy nhiên, khi tôi thực hiện nó từ bên trong một nhiệm vụ cào (hoặc di chuyển), tôi nhận được một mảng trống.
[EDIT]
Sau khi chơi xung quanh một chút nữa, tôi nhận thấy rằng nếu các mô hình không thực sự nạp cho đến khi họ được tham chiếu (ví dụ: tải lười biếng). Tôi nghĩ rằng việc thiết lập cache_classes thành true trong cấu hình sẽ sửa lỗi này, nhưng chúng vẫn có vẻ lười biếng.
Một giải pháp có thể là lặp qua tất cả các mô hình (như được giải thích trong bài đăng này: Is there a way to get a collection of all the Models in your Rails app?) nhưng điều đó có vẻ hơi khó hiểu và tôi hy vọng có một cách rõ ràng hơn.
Bất kỳ ý tưởng nào?
Cảm ơn
Yea ... Tôi đã được làm điều đó, nhưng một hack của nó ... Tôi nộp một vé ở đây: https://github.com/rails/rails/issues/5148 – gmoniey
điều này không hoạt động với các mô hình không gian tên, tôi không nghĩ. bạn đã bao giờ chạy vào một usecase không gian tên? – jay