使用ruby mongoid gem过滤嵌套属性

时间:2016-03-22 12:36:30

标签: ruby-on-rails mongodb mongoid mongoid3 mongoid4

我已经定义了下面的范围(在我的模型中),以帮助我过滤掉某些不需要的嵌套数据。

scope :active_inactive, -> { self.in({
      state: ["current"],
      "events.type" => [
        :active,
        :inactive,
      ]
    }).desc(:created_at) 
  }

当我运行此操作时,我得到的结果包含其他事件,例如“in_progress”,此范围不应包含。

1 个答案:

答案 0 :(得分:1)

我认为您的代码应该重写为

scope :active_inactive, -> {
  self.where(:state.in => ["current"], :"events.type".in =>["active","inactive"]}).desc(:created_at) 
}