我有一個問題答覆列表。查詢更改會在導軌中生成重複結果
每個響應在HTML中的data-timestamp
屬性中都有自己的時間戳轉換爲整數(通過to_i
)。
我從最近的響應中提取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);
}
在th E控制器然後我查詢此日期之後創建的所有迴應:
def polling
@responses = Response.where("created_at > ?", Time.at(params[:after].to_i))
end
展示如何你是「從數據庫(在日期時間格式)轉換created_at成整數,然後回一個在Rails中的實時對象它切斷了毫秒「 –
您的數據庫是否支持其日期時間類型的毫秒精度? –
更新了帖子以顯示代碼。 是的,數據庫(postgres)支持毫秒級的日期時間精度。 –