気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【Rails】 Called id for nil, which would mistakenly be 8 -- if you really wanted the id of nil, use object_id Rails.root:~の解決方法

こんにちは。

昨日は、蝉の音を聴きながらそうめんを食べ、真夏を全身で感じてました。

どうもハチマキです。

はじめに

業務で発生したエラーですが、解決方法の記事を探すのに若干手こずったためメモを書いていきたいと思います。

本日の概要 : Called id for nil, which would mistakenly be 8 -- if you really wanted the id of nil, use object_id Rails.root:~の解決方法

環境

事象

featureテストを書いた際にエラーが発生
※ただこのエラーを解消する必要があるのかは別途考える必要がある(nilに対してidメソッドを呼んだときにエラーを表示するため、解消するとnilでもエラーにならなくなってしまうため。)

エラー例

Rails開発中に以下のようなメッセージが表示されることがよくあるそうです。

Called id for nil, which would mistakenly be 8 -- if you really wanted the id of nil, use object_id Rails.root:~

問題点

「whiny nil」と呼ばれるものがオンになっていた

解決方法

config/environments/test.rbファイルを開き、下記true設定されているものをfalseに変更

・修正前
config.whiny_nils = true
  
・修正後
config.whiny_nils = false

この設定がオンになっていると、アプリケーションのコードでnilに対してidメソッドを呼んだときにエラーを表示されます。