【发布时间】:2014-07-07 19:14:51
【问题描述】:
我在 Rails 4 应用程序中使用 Kaminari 和 AJAX。到目前为止,我已经能够为第一页 (13) 显示不同数量的记录,但之后的每一页都显示了 14 条记录的 AJAX。这或多或少是完美的。
但是,一旦我将第一页的记录数设置为更大的数字,比如 27,kaminari 就会开始加载前 27 页中已经显示的重复项。
在我的开发应用程序中,我总共只有 30 条记录。第一页确实显示了 27 个,而第 2 页应该只显示 3 个,但是它最终会显示第一页的 14 个副本,然后在另一页上显示最后 3 个副本。
有谁知道为什么它会重复加载,而不是只显示第 2 页的最后 3 个?
PagesController.rb > 索引
@dabbles = Dabble.where(:completed_upload => true, :sketch => false).order('created_at DESC')
@dabbles = Kaminari.paginate_array(@dabbles)
@page = (params[:page] || '1').to_i
if @page == 1
@dabbles = @dabbles.page(params[:page]).per(27)
else
@dabbles = @dabbles.page(params[:page]).per(14)
end
respond_to do |format|
format.html
format.js
format.json
end
index.html.erb
<div class="grid" id="fresh">
<%= render :partial => 'pages/hexagons', :locals => { :dabbles => @dabbles, :count => 1 } %>
</div>
<div id="corrections" style="display: inline;">
<!-- irrelevant. -->
</div>
<div id="paginator">
<%= link_to_next_page @dabbles, 'Load More', :remote=>true %>
</div>
index.js.erb
$('#fresh').append("<%= escape_javascript render :partial => 'pages/hexagons', :locals => { :dabbles => @dabbles, :count => 0 } %>");
$('#corrections').append("<%= escape_javascript render :partial => 'pages/corrections', :locals => { :correction => correct_helper(@dabbles.size) } %>");
$('#paginator').html("<%= escape_javascript(link_to_next_page @dabbles, 'Load More', :remote=>true) %>");
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 pagination kaminari