Я знаю, что Rails имеет мнение о том, как должно быть имя моих классов и модулей. Таким образом, я попытался с этим сблизиться.
В каталоге/Библиотека/query_finder Rails.root, я иметь следующую структуру:Rails не находит классы в модулях
/lib
/query_finder
/adapters
active_record.rb
mongoid.rb
base.rb
/strategies
base.rb
В base.rb, я назвал свой класс так:
module QueryFinder
class Base
end
end
В адаптерах/base.rb Я назвал свой класс так:
module QueryFinder
module Adapters
class Base
end
end
end
В адаптерах/mongoid.rb, я назвал свой класс так:
module QueryFinder
module Adapters
class Mongoid
end
end
end
В адаптерах/active_record.rb, я назвал свой класс, как:
module QueryFinder
module Adapters
class ActiveRecord
end
end
end
Но Rails не может найти адаптеры. Я пытаюсь захватить все константы:
> QueryFinder::Adapters.constants
=> []
И это дает мне пустой массив. Я также добавил следующее к автозагрузке:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
Что я могу делать неправильно?
Я просто хочу, чтобы сделать отметку, что Я могу ссылаться на константы и классы, как так:
QueryFinder::Adapters::Base
=> QueryFinder::Adapters::Base
Проблема заключается в том, когда я использую метод константы, это дает пустой массив.