ActiveRecord: milisekundy nie są brane pod uwagę podczas używania klauzuli where
Pracuję nad projektem z api rails i klientem iOS, używając pola updated_at jako odniesienia do wykrywania modyfikacji na serwerze, które miały miejsce po ostatnim pobraniu od klienta.
Data / godzina updated_at ma precyzję w milisekundach, co oznacza
Model.updated_at.to_f
zwraca coś w rodzaju „1368977381.063427”. Jest on wysyłany do klienta sformatowanego jako „2013-05-19T15: 29: 41.063427000Z”.
Problem polega na tym, że kiedy odzyskuję dane z klienta, analizuję je i odpytuję, milisekundy są tracone.
last_update = DateTime.strptime("2013-05-19T15:29:41.063427000Z", "%Y-%m-%dT%H:%M:%S.%N%z")
Model.where("updated_at > ?", last_update)
jest tak dobry, jak robić
last_update = DateTime.strptime("2013-05-19T15:29:41Z", "%Y-%m-%dT%H:%M:%S%z")
Model.where("updated_at > ?", last_update)
W rezultacie zawsze otrzymuję co najmniej jeden wynik, gdy nie powinienem otrzymać żadnego, ponieważ milisekundy są obcinane.
Jak mogę wziąć to pod uwagę w moim zapytaniu?