97
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

uninitialized constantのエラーをどう解決すべきか

Last updated at Posted at 2018-08-08

#uninitialized constantとは
uninitialized constantは「定義したクラスを読むことができない」ことを言っている

具体例
NameError in HogeController#index
uninitialized constant HogeController::OutTable

#原因
クラスの読み込みが上手くいっていない。

rubyファイルを実行した時にrails sした直後は実行時点でクラスを読み込んでいないので、app/models/user.rbファイルを探しにいく。
app/models/user.rbというファイルがあれば、ファイルをオープンしてクラスを読み込む
しかし、app/models/user.rbというファイルがない、ファイルの中にUserというクラスが定義されていない場合、uninitializedエラーが起きる

#解決策

  1. ファイル名とファイルパス、ファイル中のクラス名を確認する
  2. それでも解決しない場合は、config/initializersディレクトリを利用して、アプリケーション初期化時に読み込めるように定義する

config/initializers/requirements.rb

require Rails.root.join(“app/models/user.rb”)

大いに参考にした文献
https://techacademy.jp/magazine/17957
https://www.sejuku.net/blog/21170

97
67
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
97
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?