ruby on rails - Error "Constante no inicializada" al incluir un módulo
ruby-on-rails ruby-on-rails-3.1 (1)
Estoy intentando hacer referencia a una extensión de asociación, pero se produce un error con:
NameError (uninitialized constant User::ListerExtension):
app/models/user.rb:2:in `<class:User>''
Aquí está mi implementación:
app / models / user.rb
class User < ActiveRecord::Base
include ListerExtension
has_and_belongs_to_many :roles, :uniq => true, :extend => Lister
lib / lister.rb
module ListerExtension
def lister
self.map(&:to_s).join('', '')
end
end
Estoy usando Rails v3.1.3.
Andrew Marshall tiene un excelente punto acerca de la configuración de carga automática (consulte la pregunta que vincula para obtener más información al respecto), pero también: como llamó a su clase ListerExtension
, Rails buscará un archivo llamado lister_extension.rb
- no lister.rb
. Es inteligente, pero no es tan inteligente.
¡Espero que ayude!