Результаты пейджинга will_paginate и SEQUEL

Я использую 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? Вся помощь принята с благодарностью.


person user1903663    schedule 18.06.2013    source источник


Ответы (1)


У меня такая же проблема. Метод paginate не принимает параметры :page и :per_page. https://github.com/jeremyevans/sequel/blob/master/lib/sequel/extensions/pagination.rb

У меня тоже почему-то не работала загрузка. В итоге я использовал:

page = params[:page].to_i
page = 1 unless page > 0
@notes = DB[:notes].extension(:pagination).paginate(page, 20)
person Fletcher Moore    schedule 08.12.2013
comment
спасибо, я попробую. Я использовал другой подход, так как я сделал этот пост. - person user1903663; 10.12.2013