Ce qui a fonctionné pour moi, en plus de décommentant la config.autoload_paths (je suis sur des Rails 3.1.3), était de créer un initialiseur comme ceci:
#config/initializers/myapp_init.rb
require 'my_module'
include MyModule
De cette façon, je peux appeler mymodule méthodes à partir de n'importe où et que les méthodes de la classe Model.mymodule_method
ou que les méthodes d'instance mymodel.mymodule_method
Peut-être que certains experts peuvent expliquer les implications de cette. Maintenant, vous l'utilisez à vos propres risques.
Edit: Après, je pense qu'un meilleur approuch serait:
créer un initialiseur comme ceci:
#config/initializers/myapp_init.rb
require ‘my_module'
Inclure le module en cas de besoin, comme ceci:
1) si vous voulez l'utiliser comme "les Méthodes de la Classe" utiliser "étendre":
class Myclass < ActiveRecord::Base
extend MyModule
def self.method1
Myclass.my_module_method
end
end
2) si vous voulez l'utiliser comme "les Méthodes d'Instance" de l'inclure à l'intérieur de la définition de la Classe:
class Myclass < ActiveRecord::Base
include MyModule
def method1
self.my_module_method
end
end
3) rappelez-vous que include MyModule
fait référence à un fichier my_module.rb
dans votre chemin de chargement qui doit être exigé en premier