У меня есть этот метод, который помещает ссылки из 10 результатов из API пользовательского поиска Google в массив:
require 'json'
require 'open-uri'
def create
search = params[:search][:search]
base_url = "https://www.googleapis.com/customsearch/v1?"
stream = open("#{base_url}key=XXXXXXXXXXXXX&cx=XXXXXXXXXX&q=#{search}&start=#{i}&alt=json")
raise 'web service error' if (stream.status.first != '200')
result = JSON.parse(stream.read)
@new = []
result['items'].each do |r|
@new << r['link']
end
end
и мой вид:
<% @new.each do |link| %>
<p><%= link %></p>
<% end %>
Явозникли проблемы с выяснением, как добавить нумерацию страниц, чтобы на второй странице возвращались следующие 10 результатов.Я использую камень Kaminari для разбивки на страницы.
Я хочу, чтобы, когда пользователь нажимает ссылку на другую страницу, я получал следующие 10 результатов из API Google.Вы можете сделать это с помощью параметра API start
, который задает первый результат, с которого я начинаю, и который я передаю как i
.Я думал сделать что-то вроде этого:
i = (params[:page] - 1) * 10 + 1
, где params[:page]
- номер текущей страницы, но по какой-то причине он не определен.Также я не уверен, как настроить разбиение на страницы для массива, который не является объектом AR, и что будет на мой взгляд.Буду признателен за любую помощь и не стесняйтесь использовать любой драгоценный камень нумерации страниц.