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

スポンサーリンク

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

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

同様の現象が $ 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 の機能全体を網羅されています。
 
スポンサーリンク

Leave Your Message!