2013-06-05 61 views
1

我试图在Sinatra上与kaminari分页数据集。Sinatra,Kaminari分页问题与SEQUEL和Postgres

在我的Gemfile我有

source "https://rubygems.org" 
gem 'sinatra' 
gem 'thin' 
gem 'pg' 
gem 'kaminari', :require => 'kaminari/sinatra' 

的Ruby代码是:

dataset = DB[:candidates] 
get '/candidate' do 

    @items = dataset.order(:id).page(params[:page]).per(5) 
    erb :candidate 
end 

和错误消息是:

NoMethodError at /candidate 
undefined method `page' for #<Sequel::Postgres::Dataset:0x94a6808> 

    file: app.rb 
    location: block in <main> 
    line: 25 

我卡住了。我也尝试will_paginate与类似的挫折和失败。

我的第一个问题是:查询是否正确?我也试过:

@items = dataset.order("id").page(:page=>params[:page]).per(5) 

它会产生相同的错误。

任何想法任何人?

非常感谢收到的帮助。谢谢。

回答

2

万一别人遇到这个问题,你可以得到分页的续集工作如下没有任何额外的宝石:

启用扩展:

DB.extension(:pagination) 

使用分页扩展(按照问题示例):

page = Integer(params[:page]) rescue 1 
@items = dataset.order(:id).paginate(page, 5) 

然后,它根据您的视图逻辑呈现页面链接。