在我的rails项目中,我有一个查询,根据相关的投票日期查找最近的10个竞赛和订单:
@contests = Contest.find(
:all,
:limit => "10",
:include => :polls,
:order => "polls.start_date DESC" )
目前,这显示了每个竞赛,然后通过轮询开始日期对主列表进行排序的相关民意调查进行迭代。
其中一些竞赛具有相同的:geo
,:office
和:cd
属性。我想在视图中组合这些,所以我不想列出每个竞赛并迭代每个相关的民意调查(正如我现在正在做的那样),我想迭代:geo
的每个独特组合,{ {1}}和:office
然后对于每个“群组”,无论关联的:cd
如何,都会遍历所有相关的民意调查,并按contest
排序我想要这样做,而无需创建在数据库中更加残酷。
答案 0 :(得分:4)
除非我误解了,否则我想你可能正在寻找这个:
@contests.group_by { |c| [c.geo, c.office, c.cd] }
它为你提供了一个哈希,键入[c.geo, c.office, c.cd]
,其中每个条目都包含一个共享组合的比赛数组。