В моем приложении Rails у меня есть несколько классов в папке /lib
:
/lib/ems
/lib/ems/client.rb
/lib/ems/credentials.rb
/lib/ems/v2/base.rb
/lib/ems/v2/policy.rb
И все классы автоматически загружаются в мое приложение с помощью:
config.autoload_paths += Dir["#{config.root}/lib/**/"]
Если я вызываю: Rails.application.instance_variable_get(:"@_all_autoload_paths")
Я ясно вижу, что все мои классы загружаются правильно, и они отлично работают в процессе разработки.
Однако, когда в среде без разработки я получаю NameError undefined constant
для некоторых из классы в моей папке /lib
(не все, только некоторые).
Что я заметил, так это то, что если отключить кэширование классов следующим образом:
config.cache_classes = false
Тогда эти классы будут работать нормально и могут использоваться без каких-либо проблем ... так что, похоже, проблема не в автозагрузке, а скорее в кешировании ...
Если я снова включу cache_classes
затем он сразу завершается ошибкой.
Как я могу сделать так, чтобы Rails мог видеть эти классы без необходимости выключать это?