I've discovered a strange behavior regarding ActiveRecord and
TimeWithZone

I've seen the error when using SQL Server, I have not yet tried with any
other database.

Here's output from the console - "User" is a simple model made with a
migration.

-----------------------------------------
>> d1 = User.find(:first).created_at
=> Thu, 21 Jun 2001 19:11:57 CEST +02:00
>> d2 = Time.zone.now
=> Fri, 23 Jan 2009 12:02:00 CET +01:00
>> d1.class
=> ActiveSupport::TimeWithZone
>> d2.class
=> ActiveSupport::TimeWithZone
>> d2 - d1
=> Thu Aug 04 17:50:03 UTC 1977
>> d1 - d2
TypeError: expected numeric or date
  from /usr/lib/ruby/1.8/date.rb:1252:in `minus_without_duration'
  from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/date/calculations.rb:88:in
`-'
  from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/time_with_zone.rb:201:in
`-'
  from (irb):11
-----------------------------------------

The strange thing is, that "d1" (the ActiveRecord attribute) reports
itself as a TimeWithZone class, but it isn't. If I do this instead

>> d1 = Time.zone.now
>> d2 = Time.zone.now
>> d1 - d2

I get no errors.

So what exactly is happening in ActiveRecord? Is it a problem in the
adapter?

- Carsten
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
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-talk@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to