Techioz Blog

Rails NameError: 初期化されていない定数

概要

libフォルダーにFeatureFlagAdapterクラスがあります。コードのいくつかの場所では、FeatureFlagAdapter.new(opts) として参照できます。ただし、他の場所では、NameError: uninitialized constant ContactsController::FeatureFlagAdapter のようなエラーで失敗します。参照を ::FeatureFlagAdapter.new(opts) に変更できることはわかっていますが、同じファイル内にルート名前空間演算子が接頭辞として付いていない他のクラス/モジュールへの参照が存在します。それで、なぜこれが起こるのか、何か別のアプローチがあるのかを考えています。

解決策

Rails のどのバージョンでも、デフォルトでは lib ディレクトリは積極的または自動ロードされません。これは非常に意図的なものです。

次のいずれかを行うことができます。

見る: