将Paginate Gem:提供自定义页数而不是活动记录

时间:2018-04-17 13:09:43

标签: ruby-on-rails will-paginate

我使用Elastic Search来获取数据,并尝试使用Pagination gem在页面之间切换。但我目前正面临一个问题

<%= will_paginate @data %>

我收到错误

NoMethodError - undefined method `total_pages' for #<Array:0x007fdcfbd3f128>

因为数据是从Elastic Search

获取的,所以@data是一个数组而不是一个Active Record

无论如何都要指定总页数,这样我仍然可以使用宝石。

1 个答案:

答案 0 :(得分:0)

你的@data是一个数组而不是集合,所以要在数组上使用will_paginate,你可以这样做:

require 'will_paginate/array'

然后:

@data.paginate(:page => 2, :per_page => 10)

会奏效。

来源:https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility#willpaginatecollection