Каков рекомендуемый способ включения файлов `lib /` в Rails 5 (и 6 с автозагрузчиком classi c)? - PullRequest
2 голосов
/ 21 января 2020

Раньше разработчикам 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?

1 Ответ

1 голос
/ 21 января 2020

Согласно этому обсуждению Rails 5: загрузка файлов lib в производство , вы должны поставить свои библиотеки под app/lib. Или нет. Существуют разные мнения о «подходящем» способе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...