Điều phù hợp với tôi, ngoài việc bỏ ghi chú config.autoload_paths (tôi đang sử dụng Rails 3.1.3), là tạo một trình khởi tạo như sau:
require 'my_module'
include MyModule
Bằng cách này, tôi có thể gọi các phương thức mymodule từ bất kỳ đâu và dưới dạng phương thức lớp Model.mymodule_method
hoặc phương thức thể hiệnmymodel.mymodule_method
Có thể một số chuyên gia có thể giải thích ý nghĩa của điều này. Bây giờ, sử dụng nó có nguy cơ của riêng bạn.
Chỉnh sửa: Sau đó, tôi nghĩ cách ứng phó tốt hơn sẽ là:
tạo một trình khởi tạo như thế này:
require ‘my_module’
Bao gồm mô-đun nếu cần, như sau:
1) nếu bạn muốn sử dụng nó làm "Phương thức lớp", hãy sử dụng "mở rộng":
class Myclass < ActiveRecord::Base
extend MyModule
def self.method1
Myclass.my_module_method
end
end
2) nếu bạn muốn sử dụng nó làm "Phương thức phiên bản", hãy bao gồm nó bên trong định nghĩa Lớp:
class Myclass < ActiveRecord::Base
include MyModule
def method1
self.my_module_method
end
end
3) hãy nhớ rằng include MyModule
đề cập đến một tệp my_module.rb
trong đường dẫn tải của bạn mà trước tiên phải được yêu cầu