2016-08-15 4 views
1

私は、アプリケーションの実行中のローカルインスタンスを取得しようとしている、と私はbundle exec rake db:setupを実行したときにNameError:初期化されていないContantをCONFIGすくいデシベルを実行している:(YAML)を作成

NameError: uninitialized constant CONFIG 

を得続けます。ここで

CONFIGが私environment.rbにファイル内に次のようになります。

CONFIG = YAML.load(File.read('/etc/twkeys/university/course_scheduler/config.yml')).freeze 

私はコンソールで上記をテストするとき、私はコンソールでrequire 'yaml'を実行する場合、私は

NameError: uninitialized constant YAML 

を取得し、上記をもう一度実行すると、CONFIGが正常に初期化されるようです。

私はrequire 'yaml'をenvironment.rbや他のさまざまな設定ファイルに入れてみました。

+0

あなたのenvironment.rbファイルにそれが必要ですか?もしそうでなければ、その行をconfig/initializers /フォルダのファイルに入れてください。 – fanta

+0

@ファンタに感謝します。私はenvironment.rbとapplication.rbに入れてみましたが、config/initializers /にあるすべてのファイルはCONFIGを参照しています – jnapolitan

+0

ああ、初期化ファイルにCONFIG定数が必要ですか?そのフォルダの最初のイニシャライザファイルに、このファイルの名前を00_config_initializer.rbとし、その定数が必要な他のイニシャライザファイルの前に実行されるようにします。 – fanta

答えて

0

これは、environment.rbファイルがRakeタスクから読み込まれないためです。 Rakefileを見れば簡単にトレースできます。 config/environmentではなく、config/applicationファイルを読み込みます。 Rakeタスクを実行するためにアプリケーションを初期化する必要はありません。

最も簡単な解決策は、CONFIGをモジュールの下のconfig/applicationファイルに移動することです(他の場所で使用するには名前空間が必要な場合があります)。

関連する問題