Si entiendo correctamente, ¿está agregando un nuevo registro con una marca de tiempo y estado cada vez que actualiza el estado de un servidor? Si eso es correcto, deberá GROUP BY server_id
y ORDER BY date DESC
.
Eso se puede expresar en SQL como
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
o en Rails' ActiveRecord como
Server.all.group(:server_id).order(:created_at => :desc)
(Como nota al margen, recomendaría llamar a este modelo algo así como ServerStatus
en lugar de solo Server
- representa el estado, no el servidor en sí.)