Прямая ссылка для отображения участников группы в убывающем порядке не работает

  • Для списка участников группы бэкенд-код принимает параметры 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?

2 лайка

Спасибо, что проверили это. asc=false будет работать после внесения изменений здесь:

2 лайка

Круто! Ты просто супер! Спасибо!

2 лайка