我们如何在ruby on rails中使用rethinkdb和nobrainer来OR过滤器



在此处遵循nobrainer文档:http://nobrainer.io/docs/querying/

我正在尝试进行OR查询,以查找关键字与标题或文本字段匹配的文章。。。

以下查询未返回结果。。。

 s = 'something'
 @articles = Article.where(:or=>[:title=>/(?i)#{s}/, :text=>/(?i)#{s}/])

我用下面的查询检查了我的正则表达式,它有效。。。

 @articles = Article.where(:title=>/(?i)#{s}/)

有人能帮助我们了解如何进行OR查询吗?谢谢

更新:

只有在两个字段中都找到搜索词时,查询才会返回结果。。。所以它看起来像是AND而不是OR!

nobrainer文档警告这种行为:

:or => [p1,...,pN]在至少有一个谓词为true时计算为true。

请注意,[:a => 1, :b => 2][{:a => 1, :b => 2}]相同,而与[{:a => 1}, {:b => 2}]不同。

如果添加一些花括号,您的查询可能会起作用:

 @articles = Article.where(:or=>[{:title=>/(?i)#{s}/}, {:text=>/(?i)#{s}/}])

相关内容

  • 没有找到相关文章

最新更新