Rails プラグインジェネレーターでの Zeitwerk ロードエラー

新しいプラグインを Rails plugin generator で開発したいと考えています。

git clone https://github.com/discourse/discourse
rails g plugin discourse-xxx
rails s 

エラーメッセージ:

wrong constant name Discourse-xxx inferred by Module from directory (Zeitwerk::NameError)

/Users/project/discourse/plugins/discourse-xxx/app/controllers/discourse-xxx

対処法:

  • 特定のディレクトリを Zeitwerk に無視させる。
  • 親ディレクトリのいずれかを Zeitwerk に無視させる。
  • ディレクトリ名を命名規則に準拠するように変更する。
  • 問題のケースを処理するようにインフレクタを変更する。

ただし、プラグイン名に “-” が含まれていない場合は問題ありません。

rails g plugin xxx
rails s

「いいね!」 2

Zeitwerk 導入後は見ていません。確認します。

「いいね!」 6

修正済み