1

私は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 で結果を正常にページングした経験のある人はいますか? すべての助けを感謝して受け取りました。

4

1 に答える 1

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)
于 2013-12-08T21:30:41.183 に答える