Jeśli dobrze rozumiem, dodajesz nowy rekord z sygnaturą czasową i statusem za każdym razem, gdy aktualizujesz status serwera? Jeśli to się zgadza, musisz GROUP BY server_id
i ORDER BY date DESC
.
Można to wyrazić w SQL jako
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
lub w ActiveRecord Railsów jako
Server.all.group(:server_id).order(:created_at => :desc)
(Na marginesie, polecam nazwać ten model czymś w rodzaju ServerStatus
a nie tylko Server
- reprezentuje status, a nie sam serwer.)