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!