0
1

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が出てた原因がモデル作成がうまくいってなかっただけという話

Posted at

初歩的なform_forで躓き、早速くじけそうになる

form_forでフォームを作り、rails sで立ち上げたけど、
何をやっても↓のエラーが表示される・・・:sob:
スクリーンショット 2019-03-16 0.14.19.png

ルーティングがダメなのかも、form_forの書き方がよくないのかも、インスタンス変数が・・・とガチャガチャやってみたけど改善せず、いろんな記事を見て回ってもよくわからず。
わかったことはuninitialized constantが出るということは、「定義したクラスが読み込まれていない」ということ。でも定義したクラスってなんだ・・・

原因はモデルが作られていないことがわかった経緯

とりあえず、落ち着いてform_forの機能はなんだったけと振り返ることから再スタート。
form_forはデータベースに書き込む作業。

データベースを取り扱うのは、モデルだったはず。

モデルが正しく作られているか確認しよう。

詳しくはわからないけど、モデル作成する時にファイルがいくつか作られているはず。

とりあえず、app/models/以下に「モデル名+rb」のファイルが作られているか確認

作られていない!多分ここが原因だ!

つーことで、モデルを作り直す

一番最初にモデルを作成したはずだけど、とりあえず結果として作られてなかったので、作り直し
下記のコードでモデルとテープル設計書(カラム)を作成し、
$ rails g model モデル名 title:string body:text

下記の処理が流れたらOK!
スクリーンショット 2019-03-16 0.41.54.png
次に下記のコードでデータベースに反映させ、
$ rails db:migrate
下記の処理が流れたら完了!
スクリーンショット 2019-03-16 0.44.30.png

表示された!

逸る鼓動を抑えつつ、再度rails sで立ち上げ、当該ページを表示。
スクリーンショット 2019-03-16 0.47.48.png
わーい!

他にも原因がある場合もあるよ

今回の場合、単純にモデルが作成されてないだけでしたが、
他にも原因がある場合があるので、あしからずです。

ちなみに、今回モデルが作成されていなかった原因として考えられるのが
・メモをとることに集中しすぎていて、ターミナルでコードを書いてなかった
(今回は復習用に手順のメモを取りながら開発してた)
・↑の手順メモを見てみたら、モデル作成のコードが間違っていたので、コードを間違えて打っていた

どちらにしてもやばい間違えですね。
今後はきをつけようと思います

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?