- Для списка участников группы бэкенд-код принимает параметры
orderиascдля сортировки по определённому полю в порядке возрастания/убывания. Если параметрascприсутствует и не пуст, сортировка идёт по возрастанию, иначе — по убыванию. - Фронтенд-код страницы участников группы также, по-видимому, умеет парсить параметры запроса и передавать их на бэкенд. По умолчанию на фронтенде
ascравенtrue.
Когда я перехожу по ссылке: https://try.discourse.org/g/trust_level_2?order=added_at&asc=, я ожидаю, что это будет прямая ссылка, показывающая участников уровня TL2, отсортированных по дате добавления в порядке убывания, без необходимости вручную нажимать на заголовок таблицы для переключения порядка сортировки.
Однако фактическое поведение таково: отображаются участники уровня TL2, отсортированные по дате добавления в порядке возрастания, но при этом отображается иконка «стрелка вниз» (что подразумевает, что сортировка должна быть по убыванию):
Просмотрев вкладку Network в DevTools, я обнаружил, что страница отправила запрос по адресу https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=false&filter=, а не по адресу https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=&filter=.
Поскольку все параметры URL являются строками, значение asc=false будет считаться непустым в логике params[:asc] && params[:asc].present?, что приводит к результату сортировки по возрастанию. Возможно, фронтенд-код должен преобразовывать булево значение false параметра asc в пустую строку в параметре URL?
