ruby-on-rails - 按多个唯一属性过滤 ActiveRecord 查询并合并结果

标签 ruby-on-rails ruby activerecord

在我的 Rails 项目中,我有一个查询,它按相关的投票日期查找 10 个最近的比赛和订单:

@contests = Contest.find(
:all, 
:limit => "10", 
:include => :polls, 
:order => "polls.start_date DESC" )

目前这会显示每场比赛,然后遍历关联的民意调查,并按民意调查开始日期对主列表进行排序。

其中一些比赛具有相同的 :geo , :office:cd属性。我想在 View 中组合这些,因此我不想列出每个比赛并遍历每个相关的民意调查(就像我现在正在做的那样),而是想遍历 :geo 的每个独特组合。 , :office:cd然后对于每个“组”,遍历所有关联的民意调查,而不考虑关联的 contest并按 polls.start_date. 排序我想这样做而不必在数据库中创建更多内容。

最佳答案

除非我误解了,否则我认为您可能正在寻找这个:

@contests.group_by { |c| [c.geo, c.office, c.cd] }

它会为您提供一个哈希值,以 [c.geo, c.office, c.cd] 为关键字,其中的每个条目都包含一组共享该组合的比赛。

关于ruby-on-rails - 按多个唯一属性过滤 ActiveRecord 查询并合并结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758570/

相关文章:

ruby-on-rails - 如何要求具有相同名称的不同 gem ?

ruby-on-rails - 如何通过加入 Rails ActiveRecord 正确地为 has_many 取别名?

javascript - 适用于 Rails 3 的两侧多选

jquery - Heroku PostgreSQL 更改 sortable_list POST?

ruby-on-rails - :joins | change behavior inner join to left join

ruby - ruby 脚本中的 `#!` (shebang)(hashbang) 有问题

ruby-on-rails - 连接字符串时如何在 <%=%> block 内输出 html_safe?

ruby-on-rails - 为什么要避免在 'Gemfile' 文件中使用 ~> 表达式

mysql - Ruby on Rails ActiveRecord 中的 Order 和 sort_by 区别

ruby-on-rails - ActiveRecord::UnknownAttributeError?