正在生成一个现有的数组vparray,然后按照非db列rate进行排序。然后需要对其进行分页:
@vps = vparray.sort_by{|e| e.rate}
@vps = WillPaginate::Collection.create(1, 10, @vps.length) do |pager|
pager.replace @vps
end观点;
<%= will_paginate @vps, :previous_label => "prev ", :next_label => " next" -%>呈现良好,页数平移,页面显然是第一页。但是,在:<% @vps.each do |product| %>上,entire排序数组正在呈现。
显然,the array can only be populated with values of current page。然而,
@vps = vparray.sort_by{|e| e.rate}
@vps = @vps.paginate(:page => params[:page], :per_page => 10)
@vps = WillPaginate::Collection.create(1, 10, @vps.length) do |pager|
pager.replace @vps
end是不正确的。实际上,分页命令将找到的设置减少到与per_page相同的数目,因此==仅为1页!
所以我想这条线不应该在那里。视图应该调用正确的结果页。
<% @vps.each do |product| %>比这更好的
<% @vps.page(params[:page]).each do |product| %>为WillPaginate::Collection`生成undefined method页面
上下文:Ruby1.9.3,rails 3.2.17,will_paginate 3.0.5
发布于 2014-05-27 10:33:09
然后重新读取collection.rb和array.rb库。
主计长声明:
require "will_paginate/array"
@vgps = vgp.sort_by{|e| e.rate}
@vgps = @vgps.paginate(:page => params[:page], :per_page => 30)这是排序数组所需的全部内容。
https://stackoverflow.com/questions/23875093
复制相似问题