Hi John,

We figured out the issue was the combination of time-only columns and
multiparameter attributes -- AR::Base#instantiate_time_object is
currently doing a time zone conversion for time-only columns, but it
shouldn't be.

I'll try to pull in a fix for this in soon (should be simple, we just
need to add a check in #instantiate_time_object for the column type),
but in the meantime, this will work:

class Store
  def self.skip_time_zone_conversion_for_attributes
    [:opens]
  end
end

Geoff


On Sep 10, 2:11 pm, John Trupiano <[EMAIL PROTECTED]> wrote:
> Hey Geoff, Liam,
>
> I'm running into the same issue, and it's very simple to create an
> example.
>
> 1) $> rails time_select_problem
> 2) $> cd time_select_problem
> 3) $> ruby script/generate scaffold stores name:string opens:time
> 4) Edit config/environment.rb, set config.time_zone = 'Eastern Time
> (US & Canada)' and config.active_record.default_timezone = :utc
> 5) $> rake db:create db:migrate
> 6) $> ruby script/server
> 7) Navigate to localhost:3000/stores/new
> 8) Create one, setting the time to 10:00 AM
> 9) After creation, go to show/edit.  You'll see that the time is
> displayed in both as 3:00 PM.  I can understand 'show' failing, as we
> haven't directly converted to this user's timezone.  But edit _should_
> show up correctly.  If you check the database, you'll see that it was
> stored as 3:00 PM UTC.  The conversion is made from EST to UTC.  But
> when we pull it back out using either time_select or datetime_select,
> the conversion back is not made.
>
> Does this better illustrate the problem?  Is there a flaw in my
> process?  Am I missing something here?  It just doesn't seem right
> that I select 10:00 in the time slot, and then when I edit it with the
> same form, it shows something else!
>
> -John
>
> On Sep 7, 5:21 pm, Geoff B <[EMAIL PROTECTED]> wrote:
>
> > HI Liam,
>
> > I'd need a bit more info (rails version, config.time_zone setting,
> > store opening time column type, and exactly what you're doing when you
> > "refresh the form") to determine whether this is a framework issue or
> > an application design issue.
>
> > Feel free to contact me directly if you like.
>
> > Geoff
>
> > On Sep 7, 12:30 am, Liam Morley <[EMAIL PROTECTED]> wrote:
>
> > > I'm running into an issue where I'd like to use timezones in my
> > > application, but I'd also like to use times in places where timezone
> > > is not applicable. For example, I have a Store model, and I need to
> > > track what time of day the store opens. I'm using time_select to edit
> > > this field in my form, and when I submit the form with 0 hours, it
> > > goes in the db as 05:00:00 (I'm in EST). Then when I refresh the form,
> > > it reads this as 05:00:00, and so the displayed number for hours is
> > > always 5 more than I entered. Seems to me that the translation to/from
> > > utc is only occurring in one direction.
>
> > > I'm posting this here on the advice of bitsweat from irc. If anybody
> > > wants more information or a pastie of sorts, let me know.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to