Si je comprends bien, vous ajoutez un nouvel enregistrement avec un horodatage et un statut chaque fois que vous mettez à jour le statut d'un serveur ? Si c'est correct, vous devrez GROUP BY server_id
et ORDER BY date DESC
.
Cela peut être exprimé en SQL comme
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
ou dans l'ActiveRecord de Rails sous
Server.all.group(:server_id).order(:created_at => :desc)
(En remarque, je recommanderais d'appeler ce modèle quelque chose comme ServerStatus
plutôt que juste Server
- il représente le statut, pas le serveur lui-même.)