如果我有这个数据库表服务器:
日期、server_id、server_name、server_status
我已经在我的 Controller 中设置了:
@servers = Server.all.group(:server_id)
假设在我看来我有一个像这样的表:
<% @servers.each do |server| %>
<td><%= server.server_name %></td>
<td><%= server.server_status %></td>
如何显示最近记录的服务器状态?
最佳答案
如果我没理解错的话,您是在每次更新服务器状态时添加一 strip 有时间戳和状态的新记录吗?如果正确,您将需要GROUP BY server_id
和ORDER BY date DESC
。
在SQL中可以表示为
SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;
或者在 Rails 的 ActiveRecord 中作为
Server.all.group(:server_id).order(:created_at => :desc)
(作为旁注,我建议将此模型称为 ServerStatus
而不仅仅是 Server
- 它代表状态,而不是服务器本身。)
关于mysql - Rails 显示分组后的最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40401324/