Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 按多个唯一属性筛选ActiveRecord查询并合并结果_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 按多个唯一属性筛选ActiveRecord查询并合并结果

Ruby on rails 按多个唯一属性筛选ActiveRecord查询并合并结果,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,在我的rails项目中,我有一个查询,通过关联的投票日期查找最近的10个竞赛和订单: @contests = Contest.find( :all, :limit => "10", :include => :polls, :order => "polls.start_date DESC" ) 目前,它显示每个竞赛,然后通过相关联的投票进行迭代,按投票开始日期对主列表进行排序 其中一些竞赛具有相同的:geo、:office和:cd属性。我想在视图中合并这些内容,因此我不想

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

@contests = Contest.find(
:all, 
:limit => "10", 
:include => :polls, 
:order => "polls.start_date DESC" )
目前,它显示每个竞赛,然后通过相关联的投票进行迭代,按投票开始日期对主列表进行排序


其中一些竞赛具有相同的
:geo
:office
:cd
属性。我想在视图中合并这些内容,因此我不想列出每个竞赛并迭代每个相关的投票(就像我现在所做的那样),我想迭代每个独特的组合
:geo
:office
:cd
,然后针对每个“组,”无论关联的
contest
如何,迭代所有关联的轮询,并按
轮询进行排序。开始日期。
我希望这样做,而不必在数据库中创建更多的cruft。

除非我误解了,否则我想您可能正在查找以下内容:

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

它会给你一个散列,键入
[c.geo,c.office,c.cd]
,每个条目都包含一系列共享该组合的竞赛。

除非我误解了,否则我想你可能在寻找:

@contests.group_by { |c| [c.geo, c.office, c.cd] }
它提供一个散列,键入
[c.geo,c.office,c.cd]
,其中每个条目都包含一个共享该组合的竞赛数组