mysql - Rails 显示分组后的最新值

标签 mysql ruby-on-rails

如果我有这个数据库表服务器:

日期、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_idORDER 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/

相关文章:

android - 将 Checkbox 值发送到 MySql 数据库

mysql - 将 Mysql 表复制到 Oracle 时非法使用 LONG 数据类型

ruby-on-rails - Rails 未定义方法包括在 `lib` 目录中包含模块时

ruby-on-rails - 在中间件中运行的线程正在使用旧版本的父实例变量

ruby-on-rails - 有人可以向我解释一下这个 ruby​​ 语法是如何工作的吗?

mysql - 我想测试一个事件是否还有地方,如果是的话用户可以参加,我使用node js api rest

mysql - 根据汇总结果选择

javascript - 我怎样才能让ahoy的javascript异步函数跟踪同步

php - Laravel AND、多个 OR Eloquent 查询未按预期工作

ruby-on-rails - ruby on Rails : Rails. cache.write 对于特定对象字段数组返回 false