Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 继续搜索,直到达到极限_Ruby On Rails_Ruby On Rails 3_Search_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 继续搜索,直到达到极限

Ruby on rails 继续搜索,直到达到极限,ruby-on-rails,ruby-on-rails-3,search,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Search,Ruby On Rails 3.2,我有一个搜索,可以找到所有3个匹配的类别、所有2个类别和所有1个类别,如下所示 def self.three_matching_cat(rel) cats = rel.prefs.map {|p| p.category_id} self.where(:category_id => cats).group(:name).having("count(*) >2").map {|p| p.name} end 我想做的是将结果总数限制为10个,但要确保返回所有包含3个匹配类

我有一个搜索,可以找到所有3个匹配的类别、所有2个类别和所有1个类别,如下所示

def self.three_matching_cat(rel)
  cats = rel.prefs.map {|p| p.category_id}
  self.where(:category_id => cats).group(:name).having("count(*) >2").map {|p| p.name}    
end
我想做的是将结果总数限制为10个,但要确保返回所有包含3个匹配类别的结果,并且只继续搜索,直到找到总共10个结果


谢谢大家!

所以我最后做的就是把所有数组相加,然后切片。即:

(a + b + c)[0,10].uniq

我过去曾用这种方法来解决这类问题,但我仍然对更好的方法感到好奇。