2014-10-30 75 views
2

繼nobrainer文檔瀏覽:http://nobrainer.io/docs/querying/我們如何在軌道上使用ruby中的rethinkdb和nobrainer進行過濾?

我試圖做一個OR查詢,尋找其中的關鍵字匹配的標題或文本字段文章...

下面的查詢返回任何結果.. 。

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

我檢查了我的正則表達式用下面的查詢和它的作品...

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

有人可以幫助我們瞭解如何執行OR查詢嗎?謝謝。

UPDATE:

只有當搜索項在這兩個領域中...所以它似乎是工作就像和代替或查詢返回的結果!

回答

1

nobrainer documentation警告此行爲:

:or => [p1,...,pN]計算結果爲真當謂詞中至少有一個爲真。

注意[:a => 1, :b => 2]相同[{:a => 1, :b => 2}],這是不一樣的[{:a => 1}, {:b => 2}]

如果你添加一些大括號您的查詢可能工作:

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