У меня есть модель, которая включает в себя такие атрибуты, как название компании, дата публикации (дата), местоположение (пара широта / долгота). В представлении «Индекс» я сегментирую набор результатов, используя гем will_paginate.
Я хотел бы включить динамические фильтры, основанные на результатах запроса. Например, если выбран интервал старения, другие фильтры будут основаны на этом ограничении. В идеале я мог бы отсортировать некоторые значения по частоте. Что-то вроде:
Posted: [ 0 (24) | 30 (51) | 60 (45) | 90+ (555) ]
Company: [ Company X (53) | Company AAA (44) | ... ]
Locations: [ New York (100) | Paris (51) | ... ]
Я думал об использовании вспомогательной функции для вычисления агрегатов на основе коллекции результатов, но коллекция гема will_paginate (например, @foos) включает в себя только результат текущей страницы. Возможно, есть способ получить доступ ко всему набору результатов.
Полагаю, я мог бы выполнить ряд операторов SQL для вычисления значений частоты каждого фильтра, но я надеялся, что может быть более эффективный способ сделать это.