ruby-on-rails ruby ruby-on-rails-3.1

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!