【问题标题】:will_paginate and SEQUEL paging resultswill_paginate 和 SEQUEL 分页结果
【发布时间】:2013-12-09 05:30:41
【问题描述】:

我正在使用 sinatra、sequql 和 postgresql。

到目前为止,我有:

require 'will_paginate'
require 'will_paginate/sequel'
require 'will_paginate/collection'
require 'will_paginate/version'
require 'sequel/extensions/pagination'

ruby 代码是:

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 成功分页结果的经验吗?感谢所有帮助。

【问题讨论】:

    标签: ruby sinatra sequel pg


    【解决方案1】:

    我遇到了同样的问题。 paginate 方法不采用 :page 和 :per_page 参数。 https://github.com/jeremyevans/sequel/blob/master/lib/sequel/extensions/pagination.rb

    由于某种原因,fetch 对我也不起作用。我最终使用了:

    page = params[:page].to_i
    page = 1 unless page > 0
    @notes = DB[:notes].extension(:pagination).paginate(page, 20)
    

    【讨论】:

    • 谢谢,我会试一试。自从我发表这篇文章以来,我使用了不同的方法。
    猜你喜欢
    • 2013-01-22
    • 2013-06-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多