此问题与我先前询问的this question有关。
数据库表服务器:
date,server_id,server_name,server_status
在我的控制器中使用它:
@servers = Server.order(date: :desc).group(:server_id)
我可以在我的视图中显示最新的服务器状态:
<td><%= server.server_status %></td>
如何在同一张桌子上显示第一个状态?基本上按照相反的方式按日期排序。
我知道在这种情况下它并没有真正意义,但我在第一个问题中使用了这个例子来使它更清晰。
提前致谢
答案 0 :(得分:0)
我认为这应该做你要求的事情
#controller
servers_acending = Server.order(date: :asc).group_by {|i| i.server_id}
@first_last_pairs = servers_acending.map {|k, v| [v.first, v.last]}
#your view
<%@first_last_pairs.each do |pair|%>
<td><%= pair.first.server_name %></td>
<td><%= pair.first.server_status %></td>
<td><%= pair.last.server_name %></td>
<td><%= pair.last.server_status %></td>
<%end%>
这是你可以在表格中显示第一个
答案 1 :(得分:0)
这也适合你:
@servers_latest = Server.all.group(:server_id).order(:date => :desc)
@servers_oldest = Server.all.group(:server_id).order(:date => :asc)