Railsで NoMethodError: undefined method `-@' for nil:NilClass

NoMethodError: undefined method `-@' for nil:NilClass

というエラーが出て解決まで少し時間がかかったのでメモ

このエラーがどこから出ているのか調べるのに時間がかかったのですが、 -@リファレンスマニュアル によると - をメソッド定義したものでした。

+@, -@ は単項演算子 +, - を表しメソッド定義 などではこの記法を利用します。

そこで調べてみたところ after_create 内で↓のような処理をしている部分があり company.establishment にnilが入ったためエラーが起きていました

period_from_establishment = Time.zone.now - company.establishment