0

私のモデルはこのようなものです

def self.search(search)
    if search
    self.full_text_search(search)
    else
    scoped
    end
   end 

しかし、これも追加する必要があります

 self.or({start_date: /#{Regexp.escape(search)}/i},{end_date: /#{Regexp.escape(search)}/i})

上記検索で 上記の検索でこの 2 つの条件を結合するにはどうすればよいですか。この 2 つのクエリは独立して正常に動作します。しかし、私はそれらを一緒に参加させる必要があります。実際の例に関するヘルプは役に立ちます

4

2 に答える 2

0

merge メソッドを使用して、2 つのモンゴイド基準を結合できます。

q1 = self.scope
q2 = self.or(...)

result = q1.merge(q2)

関連するドキュメントは次のとおりです。

http://rdoc.info/github/mongoid/mongoid/master/Mongoid/Criteria#merge-instance_method

于 2013-04-05T11:51:05.043 に答える
0
def self.search(search)
    if search
    q1 = self.full_text_search(search)
    q2 = self.or({start_date: /#{Regexp.escape(search)}/i},{end_date: /#{Regexp.escape(search)}/i})
    result = q1.merge(q2)
    return result
    else
    scoped
    end
   end 

これは私がしたことであり、解決されました。ありがとう @cpuguy83

于 2013-04-05T12:10:56.590 に答える