ruby-on-rails - 如何检索 group_by 的每组中的第一个值?

标签 ruby-on-rails ruby postgresql

如何在使用分组依据的查询中找到所有第一个/最高值?所以我想在每个分组月份中找到第一条记录:

class Log < ActiveRecord::Base
  belongs to :foo
  attr_accessible :month, :votes, :foo_id
  # ...
end

所以在上面的模型中,我想检索每个月获得最多选票的记录。记录已经按票数降序排列。

最佳答案

这将根据月份过滤所有数据,您可以在每个循环中进入它并从中获取第一条记录。

month_wise = Log.all.group_by { |t| t.created_at.beginning_of_month }

month_wise.each do |month|
puts month.first.inspect
end

关于ruby-on-rails - 如何检索 group_by 的每组中的第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039379/

相关文章:

ruby-on-rails - Rails 多步模型创建

ruby-on-rails - 如何在 Rspec 中定义测试用例文件的执行顺序?

ruby - 如果用户自过去 15 分钟以来未处于事件状态,如何注销用户 devise activeadmin

sql - 基于计数分组的 Active Record 对象

node.js - node.js 和 pg 中的嵌套 Promise

mysql - Rails 和 CouchDB - 架构问题

ruby-on-rails - 与最新的 Google map 、Yahoo map 、Bing API 兼容的 Ruby 地理编码库

ruby-on-rails - Ruby on Rails:在 Home#index 中出现 application.js 文件 Sprockets::FileNotFound 错误

ruby - unicode 零宽度连接器到正常空间

sql - 建议锁定或 NOWAIT 以避免等待锁定的行?