我有一个问题的答案列表。
每个响应都有自己的时间戳,在 HTML 的属性中转换为整数(通过to_i
) 。data-timestamp
我data-timestamp
从最近的响应中提取值,然后将其传递给控制器以每 5 秒查询一次数据库以获取任何新响应。
问题是它不断返回最后一个响应。反复(即它永远不会停止)。
我已经追踪到这样一个事实,即当我将created_at
数据库(日期时间格式)转换为整数然后再转换回 Rails 中的时间对象时,它会切断毫秒,即:
最后一个响应的实际时间戳:
2013-01-07 14:30:00.610491
Rails 用来查询数据库的图:
2013-01-07 14:30:00.000000
关于如何解决这个问题的任何想法?
编辑:根据要求,这是我的代码:
这是我用来从最后一个响应中获取最新时间戳的方法:
<div class="row response" data-time="<%= @response.created_at.to_i %>">
然后我通过 Javascript 将其作为参数传递给控制器(响应按时间倒序排列,因此最近的响应排在第一位):
function updateResponses() {
var after = $('.response:first').attr('data-time');
$.getScript("/responses/polling.js?after=" + after);
}
然后在控制器中查询在此日期之后创建的所有响应:
def polling
@responses = Response.where("created_at > ?", Time.at(params[:after].to_i))
end