LoginSignup
11
11

More than 5 years have passed since last update.

rake task だけで起きる NameError: uninitialized constant ModelName

Last updated at Posted at 2014-04-24

完全なる凡ミスが原因なのですが、何故か rake task のみで起きる NameError があったので、レポートします。

現象

現象をまとめると

  • 開発環境、本番環境共にrails sや、rails cでは p ModelNameModelName(id: integer,...) と出力される
  • だけど、本番環境だけrake taskからそのモデルを直接さわろうとすると NameError: uninitialized constant ModelName で怒られる。
  • 開発環境ではrake taskを実行してもエラーにならない。

原因

原因は model_name.rb が本番環境と、git 上では Model_name.rb で保存されていたこと。

そう。多分間違えてファイルを作成したが、Mac はデフォルトでは大文字・小文字の区別が無いため、手元の開発環境では直ってるのに、gitに記録されず、かつ今までrake taskからそのモデルを呼び出すことが無かったために気が付かなかった。という問題。

多分開発環境でこの修正やったの1年ぐらい前…

ちなみに普通にファイル名を変更しようと思っても怒られる

➜ git mv app/models/Model_name.rb app/models/model_name.rb
fatal: destination exists, source=app/models/Model_name.rb, destination=app/models/mode_name.rb

しかたがないので、一度関係ない名前に変更して、もとに戻す作業が必要でした

➜ git mv app/models/Model_name.rb app/models/FUUUUUUUUUUUCK.rb
➜ git mv app/models/FUUUUUUUUUUUCK.rb app/models/model_name.rb

今日はこれに2時間ぐらい悩まされた…辛い…
ちなみにこのミスしたのも俺…
よけいに辛い…

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11