Lo que funcionó para mí, además de descomentar config.autoload_paths (estoy en Rails 3.1.3), fue crear un inicializador como este:
require 'my_module'
include MyModule
De esta manera puedo llamar a los métodos mymodule desde cualquier lugar y como métodos de clase Model.mymodule_method
o como métodos de instanciamymodel.mymodule_method
Quizás algún experto pueda explicar las implicaciones de esto. Por ahora, utilícelo bajo su propio riesgo.
Editar: Después, creo que una mejor aplicación sería:
crea un inicializador como este:
require ‘my_module’
Incluya el módulo donde sea necesario, así:
1) si desea utilizarlo como "Métodos de clase", utilice "extender":
class Myclass < ActiveRecord::Base
extend MyModule
def self.method1
Myclass.my_module_method
end
end
2) si desea utilizarlo como "Métodos de instancia", inclúyalo dentro de la definición de clase:
class Myclass < ActiveRecord::Base
include MyModule
def method1
self.my_module_method
end
end
3) recuerde que se include MyModule
refiere a un archivo my_module.rb
en su ruta de carga que debe ser requerido primero