Pi *_*rse 33 ruby ruby-on-rails will-paginate ruby-on-rails-3 kaminari
我有一个@ level1数组,如下所示:
[[3.0, 4, 2], [2.0, 48, 3], [2.1, 56, 4], ............]
Run Code Online (Sandbox Code Playgroud)
我想在这个数组上应用分页,这样每个页面一次只显示几行.我试过这个:
@temp1 = @level1.paginate(:page => params[:page])
Run Code Online (Sandbox Code Playgroud)
但它会引发以下错误:
undefined method `paginate' for [[3.0, 4, 2], [2.0, 48, 3], [2.1, 56, 4]]:Array
Run Code Online (Sandbox Code Playgroud)
如何使用will_paginate对此进行分页?
Phi*_*rom 80
见https://github.com/mislav/will_paginate/blob/master/lib/will_paginate/array.rb
就require 'will_paginate/array'在你尝试之前它会工作得很好.如果它是我,我会说它,config/initalizers/will_paginate_extensions.rb所以它可以立即和从任何地方.
Chr*_*ald 26
当然,您可以使用WillPaginate::Collection跨集合构造任意分页.假设一个数组叫values:
@values = WillPaginate::Collection.create(current_page, per_page, values.length) do |pager|
pager.replace values
end
Run Code Online (Sandbox Code Playgroud)
然后,您可以@values像任何其他WillPaginate集合一样处理,包括将其传递给will_paginate视图助手.
给出collectionRails项目中的数组
will_paginate ~>3.0.5
collection.paginate(page: params[:page], per_page: 10)
Run Code Online (Sandbox Code Playgroud)
返回数组值的分页.
不要忘记require 'will_paginate/array'控制器顶部.
| 归档时间: |
|
| 查看次数: |
20531 次 |
| 最近记录: |