Rails在分组后显示最新值
如果我有这个数据库表服务器 :
date,server_id,server_name,server_status
我已经在我的控制器中设置:
@servers = Server.all.group(:server_id)
在我看来,我有一个像这样的表:
如何在最近记录的日期显示服务器状态?
@servers = Server.order(created_at: :desc).group(:server_id)
如果我理解正确,那么每次更新服务器状态时,您都会添加一个带有时间戳和状态的新记录? 如果这是正确的,您将需要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
– 它代表状态,而不是服务器本身。)
- 无法在Mac OS X上安装mysql gem
- 未初始化的常量Mysql2 :: Client :: SECURE_CONNECTION
- Ruby:mysql2-Gem无法正常工作(Mac OS X Snow Leopard,Ruby 1.9.2)
- Ruby和MySQL的UTF-8字符
- 如何确定是否可以从展示次数表中删除某些索引
- 最后在Windows 64位中安装了MySQL for Rails,现在
- Rails-MySQL错误 – 未初始化的常量MysqlCompat :: MysqlRes
- 内部mysql case语句未在结果中显示时不匹配
- Ruby On Rails检索mysql数据库数据’a’不同’b’