Rails lib включает в себя - PullRequest
       11

Rails lib включает в себя

7 голосов
/ 12 января 2010

У меня загадочная проблема с модулями, определенными в директории lib

У меня есть два файла

#lib/authentication.rb

module Authentication

end


#lib/test_module.rb

module TestModule

end

В моем контроллере приложения у меня есть

 class ApplicationController < ActionController::Base
     include Authentication
     include TestModule
 end

Модуль аутентификации загружается правильно, но TestModule не

Я получаю "неинициализированную константу ApplicationController :: TestModule"

Я в тупике ... кто-нибудь?

РЕДАКТИРОВАТЬ: Кто-нибудь знает, где я мог бы посмотреть, чтобы отладить это?

Ответы [ 2 ]

21 голосов
/ 18 июня 2012

Начиная с Rails 3, обязательно добавьте каталог lib в config.autoload_paths в config/application.rb, чтобы файл, содержащий ваш модуль, читался и модуль загружался.

config.autoload_paths += %W(#{config.root}/lib)

Смотрите здесь для получения дополнительной информации об этом и загрузке подкаталогов.

Кроме того, предположительно" вы не должны использовать require в приложении rails, потому что это предотвращает [Un] загрузку этого кода ActiveSupport :: Dependencies".

5 голосов
/ 12 января 2010

Добавление require 'lib/test_module' вверху файла ApplicationController может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...