【问题标题】:Sinatra, Kaminari pagination problems with SEQUEL and postgresSinatra、Kaminari 与 SEQUEL 和 postgres 的分页问题
【发布时间】:2013-06-01 00:33:56
【问题描述】:

我正在尝试在 Sinatra 上使用 kaminari 分页数据集。

在我的 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)

产生同样的错误。

有什么想法吗?

【问题讨论】:

    标签: ruby sinatra sequel kaminari


    【解决方案1】:

    如果其他人遇到这个问题,您可以在 Sequel 中按如下方式进行分页,而无需任何额外的宝石:

    启用扩展:

    DB.extension(:pagination)
    

    使用分页扩展(根据问题示例):

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

    然后由您的视图逻辑来呈现页面链接。

    【讨论】:

      【解决方案2】:

      README for Kaminari 没有将 Sequel 列为受支持的 ORM 之一。

      您需要使用Sequel pagination pluginfollow this gist to make your own Sequel extension

      【讨论】:

      • 谢谢。无论如何,我们(你和我)正在努力用 will_paginate 解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 2023-04-06
      • 2013-06-01
      • 2011-07-24
      • 2011-08-02
      • 2014-06-26
      • 1970-01-01
      相关资源
      最近更新 更多