Rails Zeitwerk `Wrong constant name` для javascript

Использование Rails 6

У меня есть такая папка app/client/javascript/config/editor/syntax-highlighting

2 файла там.

app/client/javascript/config/editor/syntax-highlighting/math-mode.jsapp/client/javascript/config/editor/syntax-highlighting/units-regex.js

Когда я развертываю производство, появляется сообщение об ошибке:

Wrong constant name Syntax-Highlighting inferred by Module from directory (Zeitwerk::NameError)

И он дает путь к этому каталогу.app/client/javascript/config/editor/syntax-highlighting

В чем причина этой ошибки?

2 ответа

Вы помещаете JavaScript в каталог, который Zeitwork загружает в продакшене. Либо переместите JS в каталог, специфичный для актива (например, app/assets для Sprockets или app/javascript для Webpacker), либо настройте Rails так, чтобы он игнорировал его:

# config/application.rb

Rails.autoloaders.main.ignore(Rails.root.join('app/path/to/dir'))

Недавно у меня возникла эта проблема с rails/webpacker при включении дефиса в имя моего каталога.

Это сработало: webpacker/images/img.jpg webpacker/images/photos/img.jpg

Это вызвало ошибку webpacker/images/compound-word/img.jpg

У меня не было времени докопаться до сути, поэтому я просто изменил его на webpacker/images/compoundword/img.jpg.

Другие вопросы по тегам