代码之家  ›  专栏  ›  技术社区  ›  Lester Celestial

思考斯芬克斯结合:与参数

  •  2
  • Lester Celestial  · 技术社区  · 14 年前

    我想知道我如何将斯芬克斯思考的结果集结合起来

    我有以下问题:

    Model.search :with => {:attribute_1 => id}
    

    我想与之结合:

    Model.search :with => {:attribute_2 => id}
    

    有没有一种简单的方法可以只搜索一次?我可以添加数组,但这似乎不是一个好的解决方案。如果我像这样组合过滤器:

    Model.search :with => {:attribute_1 => id, :attribute_2 => id}
    

    结果是 交叉 两个过滤器中的一个,这不是所需的输出。是否有任何方法可以对筛选器执行或操作。

    1 回复  |  直到 14 年前
        1
  •  4
  •   pat    14 年前

    这实际上归结为斯芬克斯的一个限制——在过滤器中引用属性时,它没有ORS的概念。

    也许您可以将这两个属性组合在一起?那么下面的内容就可以了:

    Model.search :with => {:attr_1_and_2 => id}
    

    在您的模型中,如果您处理的是单个值,那么这肯定会起作用,并且可能与值数组有关:

    has [attribute_1, attribute2], :as => :attr_1_and_2