8
我試圖列出記錄最近創建的位置視圖或從過去24小時使用activerecord更新的記錄,但是我需要一些初學者開發人員的幫助。過去24小時內導軌列表創建/更新記錄
有沒有人知道在控制器/視圖中實現此解決方案?先謝謝您的幫助。
我試圖列出記錄最近創建的位置視圖或從過去24小時使用activerecord更新的記錄,但是我需要一些初學者開發人員的幫助。過去24小時內導軌列表創建/更新記錄
有沒有人知道在控制器/視圖中實現此解決方案?先謝謝您的幫助。
由於您使用Rails的,我會假設你有這些文件,對應於位置的資源:
app/views/locations/index.html.erb
app/controllers/locations_controller.rb
app/models/location.rb
有在過去24小時內查詢記錄數ActiveRecord的選擇:
此示例演示了您可以指定查詢時間戳列的範圍的概念。
@locations = Location.where(updated_at: (Time.now - 24.hours)..Time.now)
正如在下面的評論中指出的,上述查詢可能會有一小部分精度錯誤。您可以存儲變量now = Time.now
,以確保您的查詢跨越24小時。
now = Time.now
@locations = Location.where(updated_at: (now - 24.hours)..now)
你可以消除減法運算,並讓Rails的爲您處理它,這也可能會導致輕微的24小時的精確窗口偏移。
@locations = Location.where(updated_at: 24.hours.ago..Time.now)
你也可以放棄在where
參數哈希語法,傳遞,與>
比較運算過濾SQL字符串。
@locations = Location.where('updated_at > ?', 24.hours.ago)
在你的控制器中添加一個索引操作,用您的首選查詢方法:
def index
@locations = Location.where(updated_at: 24.hours.ago..Time.now)
end
在您看來,添加這些行:
<table>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Created_At</th>
<th>Updated_At</th>
</tr>
</thead>
<tbody>
<% @locations.each do |location| %>
<tr>
<td><%= location.id %></td>
<td><%= location.name %></td>
<td><%= location.created_at %></td>
<td><%= location.updated_at %></td>
</tr>
<% end %>
</tbody>
</table>
爲什麼120.day ?問題是否修改? –
不,它不是。那只是另一個隨機的例子。我更新了答案,使用'24.hours'與Q協議。感謝您檢查! – sealocal
也可以工作:'Location.where(updated_at:1.day.ago..Time.now)' – Adobe