在我的 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/