7

私は、クライアントからの最後のプル後に発生したサーバー上の変更を検出するための参照として updated_at フィールドを使用して、Rails API と iOS クライアントを使用するプロジェクトに取り組んでいます。

updated_at 日時の精度はミリ秒です。つまり、

Model.updated_at.to_f

「1368977381.063427」のようなものを返します。これは、「2013-05-19T15:29:41.063427000Z」の形式でクライアントに送信されます。

問題は、クライアントからその日時を取得し、それを解析してクエリを実行すると、ミリ秒が失われることです。

last_update = DateTime.strptime("2013-05-19T15:29:41.063427000Z", "%Y-%m-%dT%H:%M:%S.%N%z")
Model.where("updated_at > ?", last_update)

するのと同じくらい良いです

last_update = DateTime.strptime("2013-05-19T15:29:41Z", "%Y-%m-%dT%H:%M:%S%z")
Model.where("updated_at > ?", last_update)

その結果、ミリ秒が切り捨てられるため、結果が得られない場合でも、常に少なくとも 1 つの結果が得られます。

クエリでそれらをどのように考慮に入れることができますか?

4

2 に答える 2