NameError in Controller&uninitialized constantが出た話

先ほどのRailsでのINSERT INTOに引き続いて、続けさまの投稿。

これはコードの覚書きというよりは小ネタ的なTIPS。

表題の通り「NameError in Controller」と「uninitialized constant」のエラーが出たときの話とその解決だ。

 

実はリレーションしたテーブルからnewとかcreateを行う際にこのエラーでハマった。

・・・というか、多分他のupdateとかのメソッドについても、同じようなこのエラーが頻出していたんだと思う。

 

で、調べてみてもこのエラーでは、「モデルの名前が複数形だから」とかいうのを散見したのだが、自分の場合はこれに該当しない。

というよりは、モデルの名前は複数系にしてはいけないということは、既に存じていた。

なぜかって?Ruby on Railsをインストールして習作を作り始めた初日に、いきなりそれにドンピシャな複数形のモデル名を書いてエラーをしたからだ。

 

まぁこれはそもそもRuby on Railsを始めた初心者がRails・・・というかRubyのネーミングルールを分かっていないことでありがちなものだから・・・絶対にそのような形式で名前を付けないように頭に刻み込んだ。

と、まぁとりあえず問題はそこじゃないわけで。

 

ネーミングルールを守っているのにもかかわらず、「NameError in Controller」と「uninitialized constant」が出た場合だ。

 

それは・・・

 

 

 

has_manyかbelongs_toで:class_nameの指定がスペルミスか、単純に指定していないか、誤っているか、とにかくそれで間違っているって言うことなんだよ!!!

 

ΩΩ Ω<な、なんだってー!?

 

 

うわぁぁぁぁぁ!!!

 

俺のバカッ!バカッ!!あたしってほんとバカ!!!

 

頭良さげに冒頭をつらつら書いたけど、蓋を開けてみればこんなもん。わたしのかかとはこんなもん。

 

はい。ということで、「NameError in Controller」と「uninitialized constant」が出た場合、モデルの複数形の名前を疑う前にやるべきこと。

 

スペルミスだとかなんとかの間違いを確認しましょう。以上。

カテゴリ

この記事のコメント

コメントはないです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です