Лучший способ реализовать простую сортировку / поиск в Rails
Каков наилучший способ реализовать интерфейс, который выглядит так в рельсах?
В настоящее время я использую Searchlogic, и это немного болезненно. Проблемы включают в себя:
Убедитесь, что некоторые операции остаются ортогональными - например, если вы выберете "Короткие сообщения" и затем выполните поиск, результаты поиска должны быть ограничены короткими сообщениями.
Убедившись, что правильная ссылка получает "выбранный" класс. Прямо сейчас ссылки
<a>
Так что поддерживать это состояние на стороне клиента сложно. Я взламываю это тем, что ответ AJAX на, скажем, сортировку возвращает новый раздел ссылок сортировки с правильной ссылкой "выбрано". Использование переключателей вместо<a>
теги облегчили бы поддержание состояния на стороне клиента - может, мне стоит это сделать?
1 ответ
Недавно я решил аналогичную проблему с помощью named_scopes и некоторого метапрограммирования ruby, которое я свернул в плагин find_by_filter.
find_by_filter принимает хэш имен и значений области и объединяет их в параметризованные вызовы области. Если модель имеет named_scope, который соответствует предоставленному имени, это называется. Если named_scope не найден, создается анонимная область.