ruby-on-rails - 在 rails/ruby 中使用 group_by

标签 ruby-on-rails ruby ruby-on-rails-3

这是我的数组:

finalcount = Vote.where(:month => month, :year => year, :vote_id => vote.id).count

我想使用 group_by(我想?)按 user_id(每个投票都有)对投票进行分组,然后返回 user_id 获得最高票数。

有什么想法可以做到这一点吗?

最佳答案

你试过group方法吗?

finalcount = Vote.where(:month => month, :year => year, :vote_id => vote.id).group(:user_id).count

会给你一个Hash,其中键是user_id,值是count。然后,您可以对该结果调用 max 以获得包含 user_idcount 的双元素数组。

这是我手边的一个应用程序示例,我在其中使用计算结果找到正确的模型实例并从中读取属性:

ruby-1.9.2-p136 :001 > ExternalPost.group(:service_id).count
 => {18=>1, 19=>1, 21=>4} 
ruby-1.9.2-p136 :002 > ExternalPost.group(:service_id).count.max
 => [21, 4]
ruby-1.9.2-p136 :003 > Service.find(ExternalPost.group(:service_id).count.max.first).user.first
 => "Brandon"

关于ruby-on-rails - 在 rails/ruby 中使用 group_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292309/

相关文章:

validation - 如何使用 ActiveRecord 中的复合键验证模型?

mysql - 使用遗留脚本将旧的 php 站点数据库迁移到 Rails 并保留旧的 ID

ruby-on-rails-3 - 如何在 Rails 3.1 中加载 CSS 框架?

css - 按时间更改背景图片网址

ruby-on-rails - RSpec & Rails : Stub request. 辅助规范的路径

ruby-on-rails - 如何访问 Sass 中的 Rails 对象?

ruby - 为什么不迭代字符串的每个索引不能正常工作?

ruby - 确定表达式的 "Truthiness"?

ruby-on-rails - 与非类/模块错误相比

mysql - 如何使用从另一个表中选择的字段更新表?