2011年8月26日金曜日

Ruby on Rails DateTimeやTimeオブジェクトの比較謎

データベースにavailable_toというdatetime型のフィルドがあります
active recordのfindメッソドを使って取り出した時は値の型は何でしょうか?

railsのバージョンによるかもしれないが、少なくでもrails1.16ではDateTime
やTimeオブジェクトと直接比較できなかった、謎!


if rec.available > DateTime.now
comparison of Time with DateTime failed
怒られました!なんで??
findメソッドを経由して、型が変わった?そんなわけないだろう...
取り敢えずこうして見る
if rec.available > Time.now
comparison of DateTime with Time failed
え?!冗談でしょう!
...仕方がない、最後の一撃!
if rank.fund.available_to.to_s.to_date > DateTime.now.to_s.to_date
やっと出来た...激汚いですけど

仕方がない、そして謎が一杯残ってます...
取り敢えず忘れよう。うん!

0 件のコメント:

コメントを投稿