MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment enregistrer correctement un fuseau horaire avec Ruby et MongoId ?

Il semble que vous deviez spécifier le type de champ de votre attribut de date. J'utiliserais un champ Heure si vous voulez que mongoid gère correctement les zones.

class Lineup
  include Mongoid::Document
  field :date, type: Time
end

Vous souhaiterez probablement également définir les éléments suivants dans config/mongoid.yml

defaults: &defaults
  use_utc: false
  use_activesupport_time_zone: true

Cela semble contre-intuitif, mais c'est la façon actuelle de faire en sorte que mongoid utilise UTC comme fuseau horaire par défaut.

Enfin, jetez un œil au mongoid-metastamp gemme. Il vous offrira une bien meilleure prise en charge des requêtes sur plusieurs fuseaux horaires, tout en continuant de fonctionner de manière transparente comme un champ Heure natif.