rake コマンドで NameError: uninitialized constant エラー

rake stats コマンドで LOC と Code to Test Ratio を確認しようとしたら、表題のエラがー出ました。

スポンサーリンク

同様の現象が $ bundle exec rake -vT など他の rake コマンドでも発生しました。APP_CONFIG は、以下のページで書いた config/settings.yml からロードするアプリケーション独自の定数です。

Rails でアプリ固有の設定情報や定数を定義する | EasyRamble

自作ライブラリで定数を呼び出していた

該当の自作ライブラリ(モジュール)を見てみますと、以下のように config/settings.yml からロードした定数を呼び出していました。

lib/some_library.rb

rake タスクのファイルを修正

エラーメッセージのスタックトレースを遡ると、rake タスクファイルの一つが元になっていたのでそのファイルを確認。テスト用にサンプルデータを DB に流し込む rake タスクでした。確認したところ、以下のようにファイルの先頭で、上記自作ライブラリを require していました。

rake task ファイルで namespace の外に出していた require の行を task の中に移動。以下のように変更。

とりあえずこれでエラーが出なくなりました。rake コマンドを実行する場合は、定数の呼び出しに environment の情報が必要なんだろうと思う(多分・・・。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!