Da Sie Rails verwenden, nehme ich an, dass Sie diese Dateien haben, entsprechend einer Ressource Standorte:
app/views/locations/index.html.erb
app/controllers/locations_controller.rb
app/models/location.rb
Es gibt ein paar Alternativen für Active Aufzeichnungen in den letzten 24 Stunden Abfrage:
In diesem Beispiel wird das Konzept veranschaulicht, dass Sie einen Bereich zum Abfragen der Zeitstempelspalten angeben können.
@locations = Location.where(updated_at: (Time.now - 24.hours)..Time.now)
Wie bereits in den Kommentaren unten aus, kann es mit der obigen Abfrage ein Bruchteil einer Sekunde Genauigkeit Fehler. Sie können eine Variable now = Time.now
speichern, um sicherzustellen, dass Ihre Abfrage genau 24 Stunden umfasst.
now = Time.now
@locations = Location.where(updated_at: (now - 24.hours)..now)
Sie könnten die Subtraktionsoperation beseitigen und lassen Sie Rails behandeln es für Sie, die auch in einem leichten von einer exakten Fenster 24 Stunden versetzt führen kann.
@locations = Location.where(updated_at: 24.hours.ago..Time.now)
Sie können auch die Hash-Syntax in der where
Parameter verzichten, eine SQL-Zeichenfolge geben, die mit dem Operator >
Vergleich filtert.
@locations = Location.where('updated_at > ?', 24.hours.ago)
In Ihrem Controller, einen Index Aktion, mit Ihrem bevorzugten Abfrage Ansatz hinzu:
def index
@locations = Location.where(updated_at: 24.hours.ago..Time.now)
end
Ihrer Ansicht nach fügen Sie folgende Zeilen:
<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>
warum 120.day ? Wurde die Frage geändert? –
Nein, war es nicht. Das war nur ein weiteres zufälliges Beispiel. Ich habe die Antwort aktualisiert, um '24. Stunden' für die Vereinbarung mit dem Q zu verwenden. Danke für die Überprüfung! – sealocal
Funktioniert auch: 'Location.where (updated_at: 1.day.ago..Time.now)' – Adobe