こんにちは。たなかです。
同じチームで開発しているメンバーから、
以下のようなエラーについて質問をいただく機会がありました。
症状
rails consoleからモデルオブジェクトをnewするとエラーになっちゃいます(;ω;)
Remindモデルオブジェクトをコンソールから確認しようとすると以下のエラーが出ていました。
[10] pry(#<ShopsController>)> Remind NameError: uninitialized constant ApplicationRecords from /usr/local/bundle/gems/bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/active_support.rb:76:in `block in load_missing_constant' Caused by NameError: uninitialized constant ApplicationRecords from /usr/local/bundle/gems/bootsnap-1.4.1/lib/bootsnap/load_path_cache/core_ext/active_support.rb:60:in `block in load_missing_constant' [11] pry(#<ShopsController>)> Completed 500 Internal Server Error in 1060652ms (ActiveRecord: 29.0ms) NameError (uninitialized constant ApplicationRecords):
むむ……?
NameError (uninitialized constant ApplicationRecords):
Railsさん「”ApplicationRecords”なんて知らないよ」
私も”ApplicationRecords”なんて知りません! 同じだねー!
解決方法
モデルのタイポを疑う!
Remind.rbを見に行くと以下のようになっていました
class Remind < ApplicationRecords end
何かの拍子か、ApplicationRecordの後ろにsがついてしまっていました。
こやつが悪さしていたようです。
sを消してみてから改めてモデルをnewしてみると無事に通りました!よかった!
まとめ
私も先日ファイル名のタイポで盛大にハマってしまったのを思い出しました。
(「import」を「inport」とミスっていました。恥ずかしい)
そこーーー!?みたいな。思い込みしてしまうんですよね。
・なるべくコピペで記述する
・Railsさんの話をちゃんと聞く
タイポなんぞで時間とられないよう、上記2点、改めて気にしていきたいですね。