1

我不能在 Mongoapper 中使用 OR 将这两个范围链接在一起:

scope :comment_is_nil, where(:comment => nil)
scope :post_not_blank, where(:post.ne => "")

它应该返回评论不为零的模型对象,或者帖子不为空白。

这不起作用:

Model.where("$or" => [{:comment_is_nil, :post_not_blank])

有任何想法吗?

4

1 回答 1

2

链接作用域是一个操作,所以M.comment_is_nil.post_not_blank不会像你知道的那样工作。MongoDB 的or语法如下所示:

Model.where(
    :$or => [
        { :comment => nil },
        { :post.ne => ''  }
    ]
)

因此,您需要通过手动扩展范围来为其提供一系列单独的条件。

于 2012-05-08T16:00:34.107 回答