I don't know about Ruby not having a Time object independent from DateTime, as migrations allow for both types of fields in a database and they behave differently.
I had a problem similar to yours where Rails insisted in updating Time fields with 1st Januray 2000 and it turned out that I was trying to input a Date Time value in a Time field (or something similar). Try changing the type of the database field and see what happens. On Sep 21, 7:32 am, Dan Manges <[EMAIL PROTECTED]> wrote: > ActiveRecord doesn't have the concept of a time independent from a > date, which is what it seems like you need. As far as I know, the Ruby > standard library doesn't either. I would use another data type. It > looks like in your example the minute is always 0, so you could store > only the hour in the database. If you need minute granularity, you > could use a decimal data type and use 9.25 for 9:15am, 13.5 for 1:30 > pm, etc. > > -Dan Mangeshttp://www.dcmanges.com/blog > > On Sep 19, 2:33 pm, Jacob Patton <[EMAIL PROTECTED]> wrote: > > > Hi all, > > > I'm building an application that will allow store owners to keep track > > of the opening and closing times of their shops. For example, a store > > owner might input that their shop is open Monday, Wednesday, and > > Friday from 9am to 5pm. > > > To keep track of these store hours, I'm using Store and Opening > > models, where each store has many openings. > > > The openings table looks like: > > id > > day (string -- day of the week, in words) > > opens_at (time) > > closes_at (time) > > > It seems that ActiveRecord (2.1.1) insists on appending a bogus date > > to the time for inserts & queries. For example, for a named scope to > > allow quick searches for whether a store is opened for a given day & > > time, I have to use this: > > > named_scope :open_for, lambda { |day, time| { :conditions =>["day > > = ? AND opens_at <= ? AND closes_at >= ?", day, "2001-00-01 " << > > time.to_s(:time) << ":00", "2000-01-01 " << time.to_s(:time) << ": > > 00" ] } } > > > when I would much prefer something like: > > > named_scope :open_for, lambda { |day, time| { :conditions =>["day > > = ? AND opens_at <= ? AND closes_at >= ?", day, time, time] } } > > > Does anyone know of a way to handle time columns more elegantly? > > > best, > > > Jacob Patton --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---