私は、クライアントからの最後のプル後に発生したサーバー上の変更を検出するための参照として 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 つの結果が得られます。
クエリでそれらをどのように考慮に入れることができますか?