Отфильтруйте вложенные атрибуты с помощью рубинового монгоида

Я определил область действия ниже (в моей модели), чтобы помочь мне отфильтровать некоторые ненужные вложенные данные.

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

Когда я запускаю это, я получаю результаты, которые содержат другие события, такие как "in_progress", которые эта область не должна содержать.

1 ответ

Решение

Я думаю, что ваш код должен быть переписан в

scope :active_inactive, -> {
  self.where(:state.in => ["current"], :"events.type".in =>["active","inactive"]}).desc(:created_at) 
}
Другие вопросы по тегам