Раньше разработчикам Rails, у которых были файлы в каталоге lib/
, велели добавить каталог lib в пути автозагрузки, добавив такую строку в config/application.rb
:
config.autoload_paths << "lib"
Тем не менее, в последних руководствах Rails говорится, что это не рекомендуется:
... использование autoload_paths в прошлом (до Rails 5) разработчики могли настраивать autoload_path для добавления в дополнительные местоположения (например, lib
, который раньше был списком путей автозагрузки лет go, но больше нет). Однако в настоящее время это не рекомендуется для большинства целей, поскольку это может привести к ошибкам, связанным только с производством . Можно добавить новые местоположения как в config.eager_load_paths, так и в config.autoload_paths, но использовать на свой страх и риск.
(выделено мной)
Поэтому вместо этого нас просят lib/
файлов. Из руководств по Rails:
Конечно, использование require в автоматически загружаемых файлах для загрузки обычных сторонних библиотек - это нормально, и Rails может различать guish их константы, они не помечены как автозагрузка.
Однако это означает, что изменения в этих require
d файлах не будут замечены и обслужены в следующем запросе. Таким образом, чтобы это произошло с lib/
файлами, мы должны добавить их в autoload_paths
..., что не приветствуется выше.
Так каков подходящий способ включить файлы lib
в ваше приложение с автоматическим c обнаружением изменений в Rails 5 или Rails 6 с включенным автозагрузчиком classi c?