ピスタチオを食べながらrailsを楽しむ

ピスタチオ大好きな著者のrailsを使ったツール作成の日記です。

Dateの比較演算が失敗したときの対処

結論から書くと比較対象にnullなデータが含まれていた。 nullは比較演算ができないためエラーが発生。

undefined method `<=' for nil:NilClassというエラーが出ていた。
実際のコードは以下のとおり。

<%= link_to "hogehoge", hogehoge_path, class: "#{ 'danger' if fuga.limit >= Date.today}"  %>

原因はfuga.limitが空の状態が存在していた。
そこでfuga.limitの存在確認をすることでエラーを回避出来た。

<%= link_to "hogehoge", hogehoge_path, class: "#{ 'danger' if fuga.limit && fuga.limit >= Date.today}"  %>

これでfuga.limitが存在したときだけDate.todayと比較することができ問題が解決した。