- Para listar miembros de un grupo, el código backend acepta los parámetros
orderyascpara ordenar por un campo específico en orden ascendente/descendente. Cuando el parámetroascestá presente y no está en blanco, es orden ascendente, de lo contrario descendente. - El código frontend de la página de miembros del grupo también parece poder analizar parámetros de consulta y pasarlos al backend.
ascestruepor defecto en el frontend.
Cuando navego a este enlace: https://try.discourse.org/g/trust_level_2?order=added_at&asc=, espero que sea un enlace directo para mostrarme los miembros TL2 ordenados por fecha de adición en orden descendente, sin tener que hacer clic manualmente en el encabezado de la tabla para alternar el orden.
Sin embargo, el comportamiento real es que: muestra los miembros TL2 ordenados por fecha de adición en orden ascendente, pero con un icono de “cheurón hacia abajo” (lo que sugiere que debería haber mostrado en orden descendente en su lugar):
Mirando la pestaña Network en DevTools, la página emitió una solicitud de https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=false&filter=, en lugar de https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=&filter=.
Como todos los parámetros de la URL son cadenas, asc=false se considerará no vacío por la lógica params[:asc] && params[:asc].present?, devolviendo así un resultado ascendente. ¿Quizás el código frontend debería convertir el valor booleano false de asc a una cadena vacía en el parámetro de la URL?
