I have an ActiveRecord model which contains a timestamp field called
"remember_token_expires_at". I have Time.now stubbed to return
Time.parse("Jan 1, 2001"). When I do:
remember_token_expires_at = 90.days.from_now.localtime
save!
reload
I get the expected time in remember_token_expires_at (April 1st, midnight
local time).
However, when I do:
expires_at = 90.days.from_now
remember_token_expires_at = expires_at.localtime
I instead get April 1st, 5 am!
Specifically, remember_token_expires_at_before_type_cast contains
"2001-04-01 05:00:00".
I''ve looked at time.c and ActiveRecord::base.rb, and I''m
stumped. I can''t
see how these two cases should differ. According to even their marshal
data from _dump, they don''t. Yet they yield different results.
What am I missing? I''m using Postgres 8.1, and I am aware of some bugs
filed to support time zones, but this shouldn''t be happening even
without
timezone support. This is just "record changes when saved and reloaded,
but only if I initialize it through a temporary variable"...
Jay Levitt
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk
-~----------~----~----~----~------~----~------~--~---