ActiveRecord: los milisegundos no se tienen en cuenta al utilizar una cláusula where

Estoy trabajando en un proyecto con una api de rails y un cliente de iOS, utilizando el campo updated_at como referencia para detectar modificaciones en el servidor que ocurrieron después de la última extracción del cliente.

La fecha y hora updated_at tiene una precisión en milisegundos, lo que significa que

Model.updated_at.to_f

devuelve algo así como "1368977381.063427". Esto se envía al cliente con el formato "2013-05-19T15: 29: 41.063427000Z".

El problema es que, cuando recupero esa fecha y hora del cliente, la analizo y pregunto, los milisegundos se pierden.

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

es tan bueno como hacer

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

Como resultado, siempre obtengo al menos un resultado cuando no debería obtener ninguno, porque los milisegundos están truncados.

¿Cómo puedo tenerlos en cuenta en mi consulta?

Respuestas a la pregunta(2)

Su respuesta a la pregunta