Используя гем Rails Ancestry, я хотел бы знать, как можно выбрать все прямые дочерние узлы данного узла (например, parent
в примере ниже), где любой из узлов поддерева этих дочерних узлов выполняетусловие.
Я знаю, что могу сделать что-то вроде следующего:
parent = NodeTree.roots.first
children = parent.children
selected_children = children.reject {|child| !child.subtree.where(valid: 1).exists? }
Но я бы предпочел сделать это в одном запросе ActiveRecord, так как на любом данном уровне может быть много детейи я не хотел бы выполнять отдельный запрос для каждого.
Есть предложения?