Отфильтруйте вложенные атрибуты с помощью рубинового монгоида
Я определил область действия ниже (в моей модели), чтобы помочь мне отфильтровать некоторые ненужные вложенные данные.
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)
}