2012-11-29 54 views
1

我有一個地方搜索,找到所有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個結果被發現。

謝謝!

回答

0

所以我最終做的只是把所有的數組加起來然後切片。即:

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

我用這個方法來解決這種類型的過去的問題,但我還是很好奇一個更好的方式來做到這一點。 – Ashitaka