Я работаю с инициализатором, который вносит некоторые обезьяны в патчи при запуске приложения, включая некоторые проблемы приложения в стороннюю библиотеку. В основном:
# config/initializers/my_initializer.rb
class SomeExternalLib
include MyConcern1
include MyConcern2
end
Это прекрасно работает в Rails 5.2.3, но при обновлении до Rails 6 я получил следующее сообщение об устаревании:
ПРЕДУПРЕЖДЕНИЕ ОБ УСТРАНЕНИИ: Инициализация автоматически загружала константы MyConcern1 и MyConcern2.
Возможность делать это устарела. Автозагрузка во время инициализации идет
быть ошибкой в будущих версиях Rails.
Перезагрузка не перезагружает приложение, поэтому код выполняется во время
инициализация не запускается снова. Итак, если вы перезагрузите ApplicationHelper, например,
ожидаемые изменения не будут отражены в этом устаревшем объекте Module.
Эти автозагрузочные константы были выгружены.
Пожалуйста, ознакомьтесь с руководством "Автозагрузка и перезагрузка констант" для решения.
(вызывается из /Users/myuser/code/myapp/config/environment.rb:7)
Мои проблемы находятся в приложении / контроллеры / проблемы /. После некоторого исследования я выяснил, что этот путь не был автоматически загружен, но я не могу понять, как заставить Zeitwerk - новый автозагрузчик Rails 6 - загружать это динамически. Я попытался следовать шаблону автозагрузки STI, описанному здесь , но безуспешно. Любая идея, как обратиться к этому предупреждению об устаревании?