2013-06-05 55 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) 

然後,它根據您的視圖邏輯呈現頁面鏈接。