Я использую Sinatra, Sequql и PostgreSQL.
Пока что у меня есть:
require 'will_paginate'
require 'will_paginate/sequel'
require 'will_paginate/collection'
require 'will_paginate/version'
require 'sequel/extensions/pagination'
Рубиновый код:
get '/candidate' do
@items = DB[:candidates].order(:id).extension(:pagination).paginate(1, 10)
erb :candidate
end
В представлении:
<%= will_paginate @items %>
Я пробовал несколько вариантов запроса, чтобы заставить работать пейджинг, но все закончилось неудачей. Следующее генерирует страницу из 10 строк в соответствии с запросом, но затем возвращает сообщение об ошибке, когда я нажимаю страницу 2.
Я пробовал с включенным расширением сиквела и без него, и создатель «will_paginate» непреклонен в том, что они все равно могут работать вместе.
Кроме того, по предложению других, я пробовал:
get '/candidate' do
@items = DB[:candidates].order(:id).paginate(:page => params["page"], :per_page => 10)
erb :candidate
end
а также
get '/candidate' do
page = params.fetch "page", 1
per_page = params.fetch "per_page", 10
@items = DB[:candidates].order(:id).paginate(:page => page, :per_page => per_page)
erb :candidate
end
ни один не работает. Я получаю сообщение об ошибке, которое в основном говорит «неправильное количество аргументов (1 вместо 2)».
Есть ли у кого-нибудь опыт успешной подкачки результатов с помощью SEQUEL? Вся помощь принята с благодарностью.