date_selectとdatetime_selectでvalidateは注意が必要だね

ここ数日の悩み。
date_selectを使って日付を選択させるんだけど、2/31とか6/31が選択できてしまう。
 
そいでvalidateでDate.todayと比較させていたんだけども、ありえな日付を選択したときにエラーが発生してしまうのだ。

if hoge_day.nil?
  errors.add(:hoge_day, ":正しい日付を入力してください")
else
  errors.add(:hoge_day, ":未来の日付は入力できません") if hoge_day > Date.today
end

いろいろなプラグインを試していたけど、こんな形で検証してあげるのが良いらしい。
実際に入力した値を取得して「○月×日なんて日付はねーんだよ、小学校からやり直して来い!!バーカ!!」といったエラーメッセージも思いついたけど・・・悪意がありすぎなので実装はしないでおく。

追記、updateには効かない!

これは困っている・・・もう1週間も悩みっぱなし。