У меня есть проблема, с которой я не могу найти простое решение.
Я хочу добиться следующего:
* У меня есть список задач, у каждого из которых есть владелец и срок выполнения
* Я хочу отобразить список всех задач, сгруппированных по владельцу
* Я хочу отсортировать владельцев по срокам: например, Сначала владелец с наименьшей датой оплаты, затем владелец со вторым наименьшим и т. Д.
* Я хочу иметь возможность разбивать результаты на страницы, желательно с will_paginate
Чтобы проиллюстрировать, это будет результат, который я ищу:
Harry
- задание 1, срок выполнения 1
- задание 3, срок выполнения 4
Бен
- задание 2, срок выполнения 2
Carol
- задание 4, срок выполнения 3
Пока что я могу запрашивать всех владельцев с задачами, сортировать их по виртуальному атрибуту с указанием их «самой ранней даты исполнения», а затем отображать их и их задач в представлении.
У этого подхода несколько проблем, imo:
* Я запускаю несколько запросов из представления (owner.tasks.each и т. д.). Я всегда узнал, что выполнение запросов из представления плохо
* Я делаю сортировку, загружая все записи в память (виртуальный атрибут), что может вызвать проблемы при большом наборе записей.
* Я понятия не имею, как я могу включить нумерацию страниц, это будет зависеть от количества отображаемых задач
Кажется, я не могу взломать этот орех, поэтому любая помощь или подсказки будут с благодарностью!
Эрвин