ClassName.constants возвращает пустой массив в приложении Rails

Я работаю над приложением Rails 3, и у меня есть иерархия классов в моемlib папка, например:

lib
├── assets
├── tasks
│   └── import.rake
└── importer
    ├── base.rb
    └── source
        ├── facebook.rb
        ├── google.rb
        └── twitter.rb

Я обновилconfig/application.rb включить эту строку:

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

Тогда внутриImporter::BaseУ меня есть метод экземпляра, который пытается загрузить все классы вProvider модуль, например:

Importer::Source.constants.each do |class_name|
  Importer::Source.const_get(class_name).process
end

Три класса вlib/importer/base иметь иерархию классов, похожую на:

module Importer
  module Source
    class Facebook
      # ...
    end
  end
end

Когда я вызываю этот метод,Importer::Source.constants заканчивает тем, что возвращает пустой массив. Классы кажутся загруженными с отложенной загрузкой, если я ссылаюсь на них по имени напрямую, но они не доступны вconstants вызов. Как я могу это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос