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?

questionAnswers(2)

yourAnswerToTheQuestion