Rails 6 не загружает модули и классы движка (Zeitwerk?)
На работе у нас обоих есть приложение MyApplication на Rails и гем / движок MyEngine, который предоставляет утилиты для MyApplication. Одна из целей MyEngine - обезьяна исправлять базовые классы ruby и расширять их функциональностью, относящейся к MyApplication (например, хранящейся в my_engine/ app /monkeys/kernel.rb).
С нашей текущей настройкой rails 5.2.3 все отлично работает со следующей конфигурацией движка:
#lib/my_engine/engine.rb
module MyEngine
class Engine < ::Rails::Engine
config.eager_load_paths << "app/monkeys"
end
end
Но при подключении движка к новой версии MyApplication rails 6.1.0 классы больше не загружаются eager_loaded, а методы с исправлением обезьяны дают неопределенный метод NoMethodError.
Я знаю, что rails 6.0 и более поздние версии внесли изменение в использование Zeitwerk для автозагрузки и постоянной загрузки констант, но через несколько дней после этого беспорядка я, к сожалению, все еще не могу настроить свой движок таким образом, чтобы он действительно работал с rails 6.1.0. Любая помощь или совет в самом широком смысле были бы очень, очень признательны!