Я пытаюсь захватить список активных задач для инструмента рабочего процесса я делаю, с данными структурированы следующим образом:Возвращает запрос с вложенными результатами с Rails ActiveRecord
- Пользователя
- has_many проекты
- HAS_MANY подпроектах
- HAS_MANY задачи
- HAS_MANY T imeLogs
- HAS_MANY задачи
- HAS_MANY подпроектах
- has_many проекты
Активные задачи определяются как любые задачи с TimeLog, что не имеет 'заполненный' временную метку.
Я стараюсь, чтобы главная страница отображала эту полную структуру, но отображала только родительские структуры, у которых есть активная задача на некотором уровне. Любые пользователи/проекты/подпроекты, которые не имеют активной задачи под ними, не должны возвращаться запросом.
До сих пор я пытался:
- Объединение всех четырех таблиц, которые производит повторяющиеся строки
- ГДЕ СУЩЕСТВУЕТ заявление, которое возвращает только соответствующие пользователи, но не поддерживать WHERE когда я пытаюсь получить доступ к его детям
Есть ли способ достичь этого без ручного отбраковки данных в Ruby?
Вы можете добавить '.uniq' в конец вашего запроса на соединение. Затем ActiveRecord запросит без дубликатов. –
Это работает для пользователей верхнего уровня, но когда я захватываю дочерние проекты пользователя, он просто захватывает все проекты. Выполнение предложения 'where' через детей кажется беспорядочным, поэтому я ищу способ просто захватить все это сразу, возможно, преобразовать запрос ActiveRecord в вложенный хэш? –