Pokud tomu dobře rozumím, přidáváte nový záznam s časovým razítkem a stavem pokaždé, když aktualizujete stav serveru? Pokud je to správné, budete muset GROUP BY server_id
a ORDER BY date DESC
.
To lze v SQL vyjádřit jako
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
nebo v Rails' ActiveRecord jako
Server.all.group(:server_id).order(:created_at => :desc)
(Jako okrajovou poznámku bych doporučil nazvat tento model něco jako ServerStatus
spíše než jen Server
- představuje stav, nikoli server samotný.)