显示群组成员按降序排列的直接链接不起作用

  • 要列出群组中的成员,后端代码接受 orderasc 参数,以升序/降序对特定字段进行排序。当 asc 参数存在且非空时,表示升序,否则表示降序。
  • 群组成员页面的前端代码似乎也能解析查询参数并传递给后端。前端默认 asctrue

当我导航到此链接时:https://try.discourse.org/g/trust_level_2?order=added_at&asc=,我期望这是一个直接链接,显示按添加时间降序排序的 TL2 成员,而无需手动单击表头来切换排序。

然而,实际行为是:它显示按添加时间升序排序的 TL2 成员,但带有“chevron-down”图标(表明它应该显示为降序):

查看 DevTools 中的 Network 选项卡,页面发出了一个请求: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? 逻辑视为非空,从而返回升序结果。也许前端代码应该将 asc 的布尔值 false 转换为 URL 参数中的空字符串?

1 个赞