У мене, крім розкоментування config.autoload_paths (я на Rails 3.1.3), мені вдалося створити такий ініціалізатор:
require 'my_module'
include MyModule
Таким чином я можу викликати методи mymodule з будь-якого місця і як методи класуModel.mymodule_method
або як методи екземпляраmymodel.mymodule_method
Можливо, якийсь експерт може пояснити наслідки цього. На даний момент використовуйте його на свій страх і ризик.
Редагувати: Згодом, я думаю, кращою програмою буде:
створити такий ініціалізатор:
require ‘my_module’
Включіть модуль, де це потрібно, наприклад:
1) якщо ви хочете використовувати його як "Методи класів", використовуйте "розширити":
class Myclass < ActiveRecord::Base
extend MyModule
def self.method1
Myclass.my_module_method
end
end
2) якщо ви хочете використовувати його як "Методи екземпляру", включіть його до визначення класу:
class Myclass < ActiveRecord::Base
include MyModule
def method1
self.my_module_method
end
end
3) пам’ятайте, що include MyModule
посилається на файл my_module.rb
у вашому шляху завантаження, який потрібно спочатку вимагати