J'implémente le support Timezone dans Rails 2.1+, et j'ai rencontré un bug apparent dans la façon dont les données sont extraites de la base de données. Laissez-moi essayer de le mettre en place.Rails timezone ignoré pour ActiveRecord trouver?
Le modèle "deals" contient un champ datetime "offer_date". Disons que j'ai deux dossiers avec ces offer_dates:
Deal 1: 2009-12-29 23:59:59 -0500
Deal 2: 2009-12-28 23:59:59 -0500
Ceci est correct: les dates devraient marquer la dernière seconde de sa journée.
Maintenant, quand vient le temps de trouver l'accord d'aujourd'hui, je la requête AR suivante:
@deal = Deal.first(:conditions=>['offer_date > ?', Time.now.beginning_of_day], :order=>"offer_date ASC")
Dans ce cas, bien que ce soit le 29 aujourd'hui, il renvoie le dossier ostensiblement pour le 28. Pourquoi? Voici ce qui se passe dans la console:
>> @deal = Deal.first(:conditions=>['offer_date > ?', Time.now.beginning_of_day], :order=>"offer_date ASC")
=> #<Deal id: 2, <blah blah blah...>, offer_date: "2009-12-29 04:59:00">
Il est décalant le temps avant de 5 heures, en mettant la journée d'hier dans l'autre. Mais quand je fais ceci:
>> @deal.offer_date
=> Mon, 28 Dec 2009 23:59:00 EST -05:00
Je reçois le bon moment. Que diable??? Inutile de dire que j'ai besoin de cette date pour fonctionner correctement, mais je n'arrive pas à comprendre où est mon problème. Toute aide que vous pourriez fournir serait grandement appréciée!
Ahhh, merci encore pour votre aide! Je vais finir par ça ... :-) –