Skip to content

rails viewで、undefined method for nil:NilClass がでて数時間ハマったときの話。

rails 関連付けをした後、viewで、undefined method for nil:NilClass というエラーがでた。
なんのことかわからず、いろいろ調べて数時間はまってしまった。

 

最終的にエラー文とじっくり向き合う。

 

「nil:NilClass のための method がないよ」

 

present? を置いたら解決した。

 

結論、エラーはきちんと読もう!

 

いろいろ調べて覚えたこと

原因がわからないと、手がかりを探してまた手がかりを探すの繰り返しですね。

 

関連付けを確認した

 

最初、関連付けが間違っているのではと思い,has_manyとbelongs_toを再確認した。

belongs_to :単数形でかく
has_many :複数形でかく

図で確認するのがわかりやすい。

https://railsguides.jp/association_basics.html

あと英文で書くとわかりやすい。

person belongs_to country
country has_many people(personの複数形)

問題なさそうだった。

 

どこまでデータが来ているか確認した

pryを入れてdebugした。

https://www.sejuku.net/blog/29910

rails -c

ちゃんと出た。DBからはちゃんと拾えているようだ。

 

<% binding.pry %>をviewに埋め込んでデバッグしてみた。

viewまでちゃんとデータがきてる。

https://ruby-rails.hatenadiary.com/entry/20150108/1420721205

 

 

お、おかしい(汗)
カラムを確認してみた。大文字のカラムがあったので、名前を小文字にしてみた。

https://qiita.com/littlekbt/items/48fa2b428147921db5a5

関係なかった。

メソッドを確認してみた。

https://paranishian.hateblo.jp/entry/ruby/methods

関係なかった。

埒が明かないので、エラーメッセージをじっくり読む。調べていたことと書いてあることが違う、、、
 
エラーメッセージを正確に読むことは大事ですね!

Be First to Comment

コメントを残す

%d人のブロガーが「いいね」をつけました。