如果我有这个数据库表服务器:
date,server_id,server_name,server_status
我已在我的控制器中设置:
@servers = Server.all.group(:server_id)
假设在我看来我有一张表:
<% @servers.each do |server| %>
<td><%= server.server_name %></td>
<td><%= server.server_status %></td>
如何在最近记录的日期显示服务器状态?
答案 0 :(得分:2)
如果我理解正确,每次更新服务器状态时,您都会添加带有时间戳和状态的新记录?如果这是正确的,您需要GROUP BY server_id
和ORDER BY date DESC
。
可以在SQL中表示为
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
或在Rails&#39; ActiveRecord为
Server.all.group(:server_id).order(:created_at => :desc)
(作为旁注,我建议将此模型称为ServerStatus
,而不仅仅是Server
- 它代表的是状态,而不是服务器本身。)
答案 1 :(得分:1)
@servers = Server.order(created_at: :desc).group(:server_id)