【问题标题】:keep searching until limit is reached继续搜索直到达到限制
【发布时间】:2012-11-18 01:44:46
【问题描述】:

我有一个搜索,可以找到所有 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 个结果。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 search ruby-on-rails-3.2


    【解决方案1】:

    所以我最终所做的只是将所有数组相加,然后对其进行切片。即:

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

    【讨论】:

    • 我过去曾使用这种方法来解决此类问题,但我仍然对更好的方法感到好奇。
    猜你喜欢
    • 2017-01-10
    • 2021-09-21
    • 1970-01-01
    • 2016-09-30
    • 2017-05-22
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多