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