- Per elencare i membri di un gruppo, il codice backend accetta i parametri
ordereascper ordinare per un campo specifico in ordine ascendente/discendente. Quando il parametroascè presente e non vuoto, è l’ordine ascendente, altrimenti discendente. - Anche il codice frontend della pagina dei membri del gruppo sembra essere in grado di analizzare i parametri di query e passarli al backend.
ascètrueper impostazione predefinita sul frontend.
Quando navigo a questo link: https://try.discourse.org/g/trust_level_2?order=added_at&asc=, mi aspetto che questo sia un link diretto per mostrarmi i membri TL2 ordinati per tempo di aggiunta in ordine discendente, senza dover fare clic manualmente sull’intestazione della tabella per attivare l’ordinamento.
Tuttavia, il comportamento effettivo è che: mostra i membri TL2 ordinati per tempo di aggiunta in ordine ascendente, ma con un’icona “chevron-down” (suggerendo che avrebbe dovuto essere mostrato in ordine discendente invece):
Guardando la scheda Network in DevTools, la pagina ha emesso una richiesta di https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=false&filter=, invece di https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=&filter=.
Poiché tutti i parametri dell’URL sono stringhe, asc=false sarà considerato non vuoto dalla logica params[:asc] && params[:asc].present?, restituendo così un risultato ascendente. Forse il codice frontend dovrebbe convertire il valore booleano false di asc in una stringa vuota nel parametro URL?
