调用 latest.json API 时出现 [无法将字符串强制转换为整数]

当我调用 latest.json?page=0&per_page=10&foo=bar 时

     # TypeError:
     #   String can't be coerced into Integer
     #   ./lib/topic_query.rb:729:in `*'

https://github.dev/discourse/discourse/blob/0832cad803bb429a49595eab822a7c77dfa2088b/lib/topic_query.rb#L732-L737
我认为可以通过以下方式解决:

if options[:page]
  offset = options[:page].to_i * options[:per_page].to_i
  result = result.offset(offset) if offset > 0
end

这是一个功能请求,per_page 不是我们 API 的一部分(客户端根本不使用它)。这并不能完全解决问题,因为 per_page 需要有一个上限,比如最多 100-200。

您是否有特定原因要覆盖页面大小?

2 个赞

是的,我们有一个用于以瀑布流方式获取主题的客户页面。
当然,我认为这是一个功能请求。
我们可以使用默认的 per_page 并删除 per_page 查询。

1 个赞