Что сработало для меня, помимо раскомментирования config.autoload_paths (я использую Rails 3.1.3), так это создание инициализатора, подобного этому:
require 'my_module'
include MyModule
Таким образом, я могу вызывать методы mymodule из любого места и как методы классаModel.mymodule_method
или как методы экземпляраmymodel.mymodule_method
Может быть, какой-нибудь эксперт объяснит, к чему это приведет. К настоящему времени используйте его на свой страх и риск.
Изменить: после этого, я думаю, лучше было бы:
создайте инициализатор вроде этого:
require ‘my_module’
При необходимости включите модуль, например:
1) если вы хотите использовать его как «Методы класса», используйте «extension»:
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
в вашем пути загрузки, который должен быть обязательным в первую очередь