It looks as though if you ask a DateTime to add something to itself, it looks at the something, and if it's an integer, it interprets it as a duration in seconds, but if it's a Rational, it interprets it as a duration in days.
It's inconsistent. Why didn't the designers settle on one type for durations and one way to interpret them? What should one store in a database for a duration? What rules should one follow to avoid being tripped up by numbers being interpreted as different measures depending on accidental features such as the numbers' representations? This is very disappointing; engineering designs should make logical sense. >> x = DateTime.now => Tue, 21 Dec 2010 12:10:14 -0500 >> d1 = 1.second => 1 second >> y = x + d1 => Tue, 21 Dec 2010 12:10:15 -0500 >> y.class => DateTime >> y - x => Rational(1, 86400) >> d2 = y - x => Rational(1, 86400) >> d1.class => Fixnum >> d1 => 1 second >> 0 + d1 => 1 >> d1 == d2 => false >> (x + d1) == (x + d2) => true -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.