2010-01-19 7 views
4

Je comprends que le comportement par défaut des rails est d'enregistrer les enregistrements de la base de données et toutes les colonnes liées à la date/heure à l'heure UTC. Et nous pouvons contrôler l'affichage de date/datetime pour les utilisateurs avec config.time_zone dans environment.rb. Donc, fondamentalement, le paramètre config.time_zone est de contrôler l'affichage, par lequel les rails convertissent les enregistrements d'UTC à celui que nous spécifions dans config.time_zone.Rails Fuseau horaire

Existe-t-il un moyen ou un paramètre pour forcer les rails à enregistrer les enregistrements dans EST plutôt que dans UTC et continuer à afficher la conversion en fonction du paramètre config.time_zone?

-Satynos

Répondre

3

Vous devriez considérer le raisonnement derrière votre question. Rappelez-vous: Rails implémente la convention sur la configuration - et vous feriez mieux d'avoir une très bonne raison de vouloir changer la convention! Surtout sur quelque chose d'aussi arbitraire que la façon dont datetime est sauvegardé dans la base de données, et étant donné la facilité avec laquelle Rails nous permet de travailler avec les dates.

0

Je ne sais pas forcer les dossiers à sauvegarder dans l'Est, mais je voulais partager cette discussion sur l'utilisation d'une zone heure locale dans la db: http://www.ruby-forum.com/topic/890711

De la discussion, je me suis retrouvé à l'aide skip_time_zone_conversion_for_attributes pour un problème similaire (à propos de cette méthode: http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html). Cela peut vous intéresser - peut-être, définissez le fuseau horaire sur EST, puis essayez cette méthode.

Bonne chance! Je sais que ça fait un moment, mais peut-être prendre le temps de faire savoir aux gens ce que vous avez fini par faire.