MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como salvar um fuso horário corretamente com Ruby e MongoId?


Parece que você precisa especificar o tipo de campo do seu atributo de data. Eu usaria um campo Time se você quiser que o mongoid lide com as zonas corretamente.
class Lineup
  include Mongoid::Document
  field :date, type: Time
end

Você provavelmente também desejará definir o seguinte em config/mongoid.yml
defaults: &defaults
  use_utc: false
  use_activesupport_time_zone: true

Isso parece contra-intuitivo, mas essa é a maneira atual de fazer com que o mongoid use o UTC como o fuso horário padrão.

Por fim, dê uma olhada no mongoid-metastamp gema. Ele lhe dará um suporte muito melhor para consultas em vários fusos horários, enquanto ainda funciona perfeitamente como um campo de tempo nativo.