[String can't be coerced into Integer] при вызове API lastest.json

Когда я вызываю lastest.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 лайк