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})

在上面的搜索中。我怎么能在上面的搜索中加入这两个条件。这两个查询独立工作正常。但我需要让他们联合起来。任何有关工作示例的帮助都是有帮助的

4

2 回答 2

0

您可以使用 merge 方法加入两个 mongoid 标准:

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 回答