Ошибка "Неинициализированная постоянная" при включении модуля
Я пытаюсь ссылаться на расширение ассоциации, но с ошибками:
NameError (uninitialized constant User::ListerExtension):
app/models/user.rb:2:in `<class:User>'
Вот моя реализация:
приложение/модели/user.rb
class User < ActiveRecord::Base
include ListerExtension
has_and_belongs_to_many :roles, :uniq => true, :extend => Lister
Библиотека /lister.rb
module ListerExtension
def lister
self.map(&:to_s).join(', ')
end
end
Я использую Rails v3.1.3.
Ответы
Ответ 1
У Эндрю Маршалла есть отличная точка в настройке автоматической загрузки (см. вопрос, который он связывает для этого), но также: поскольку вы назвали свой класс ListerExtention
, Rails будет искать файл с именем lister_extension.rb
- не lister.rb
. Это умный, но это не тот умный.
Надеюсь, что это поможет!