2012-05-08 4 views
1

私はできないチェーンORを使用してMongomapperで一緒にこれらの2つのスコープ:等しくない(NE)とOR Mongomapperで正しい結果を返さないスコープ

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

コメントがnilでない場合それはモデルオブジェクトを返す必要があります、または投稿は空白ではありません。

これは動作しません:

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

任意のアイデア?

答えて

2

連鎖スコープがの操作なので、わかっているようにM.comment_is_nil.post_not_blankは機能しません。 MongoDB's or syntaxは次のようになります。

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

ですから、手動でスコープを拡大することによって、それを個々の条件の配列を与える必要があります。

関連する問題