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

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

当前,这将显示每个竞赛,然后通过按投票开始日期对主列表排序的关联投票进行迭代。
有些比赛具有相同的属性我想合并视图中的这些选项,所以我不想列出每个竞赛并遍历每个相关的投票(就像我现在所做的那样),而是遍历:geo:office:cd的每个唯一组合,然后对于每个“组”,遍历所有相关的投票,而不考虑相关的:geo,并按我想做的:office排序这不需要在数据库中创建更多的cruft。

最佳答案

除非我误解了,我想你可能是在找这个:

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

它给你一个Hash,键入[c.geo, c.office, c.cd],每个条目包含一个共享组合的竞赛数组。

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

10-11 03:22