0
0

More than 3 years have passed since last update.

【初学者向け】uninitialized constantエラー

Last updated at Posted at 2021-03-25

uninitialized constantエラーが起きる原因

uninitialized constant errorを直訳すると「初期化されていない定数のエラー」という意味:expressionless:
Railsでは「定数やclassが定義されていない」ことを意味:thinking:
uninitialized constantは名前が間違っているという意味のNameErrorということ:rolling_eyes:
つまり、ファイル名の記述間違いなどで、呼びたいクラス名を記述出来ていない場合などでエラーが発生します。

実際に出たエラー

NameError in Users::RegistrationsController#create
uninitialized constant User::GenderId

ここから考えたこと

う〜ん:thinking:User::GenderIdでエラーが発生してるみたいだから、GenderIdに関わる内容を確認してみたほうがよさそうだな。Railsでは「定数やclassが定義されていない」ことを意味する。。。ということはclass名やモデル名で定義しないといけないところをGenderIdで定義しているのでは。。。:thinking:おっ!!

原因

user.rb
(省略)
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :gender_id
(省略)

アソシエーションを間違えていたみたいです。。。
アソシエーションはテーブル同士で関連付けておき、一方のモデルからもう一方のモデルにアクセスできるようへするためのものなので、
今回の場合だと「GenderIdにアクセスしようとしたけどそんなものないですよ」と伝えてくれていたみたいです。 ⬅︎ という認識であってます??

user.rb
(省略)
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :gender
(省略)

上記のように編集したことで解決しました!!(Genderは定義されているので)
完全な凡ミスでした。。。

参考

0
0
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
0
0