#ruby-on-rails #sorting #query-string
#ruby-on-rails #сортировка #строка запроса
Вопрос:
Я работаю над индексной страницей контроллера листинга, которому требуется несколько параметров сортировки. Строка запроса необходима для определения опции сортировки, которая активна для текущей страницы. Я использовал обходной путь для этой проблемы, жестко закодировав строку запроса в ссылки сортировки:
=link_to "Lowest Price","/listings?sort_by=priceamp;order=asc", :class=>"#{'active' if request.query_string =~ /sort_by=priceamp;order=asc/ }"
Но с этим связаны две проблемы. Во-первых, это слишком хрупко. Во-вторых, он не поддерживает поисковый запрос или какие-либо другие параметры — в противном случае он ломается.
Что мне нужно, так это способ изменить параметры сортировки, не предполагая, что строка запроса останется неизменной…
Не уверен, существует ли лучшая практика для этого. Я иду по долгому пути и просто добавляю помощников для преобразования URL в хэш, хэш в URL, и я все еще не знаю, что делать с проблемой активной ссылки. На все это может потребоваться некоторое время.
Любые предложения будут оценены.
Ответ №1:
Вы можете сделать это, предоставив пары ключ / значение любому помощнику URL. Например:
listings_url(:sort_by => "asc", :order => "asc")
Комментарии:
1. Отлично! Пожалуйста, отметьте это как ответ, если считаете его адекватным 🙂
2. Я пытался ранее, но, по-видимому, должно пройти 10 минут, прежде чем вы сможете принять ответ как правильный.