Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4:Kaminari-显示重复项_Ruby On Rails_Ruby On Rails 4_Pagination_Kaminari - Fatal编程技术网

Ruby on rails Rails 4:Kaminari-显示重复项

Ruby on rails Rails 4:Kaminari-显示重复项,ruby-on-rails,ruby-on-rails-4,pagination,kaminari,Ruby On Rails,Ruby On Rails 4,Pagination,Kaminari,我正在Rails 4应用程序中使用Kaminari和AJAX。到目前为止,我已经能够为第一页显示不同数量的记录(13条),但之后每一页显示14条记录。这或多或少是完美的 但是,一旦我将第一页的记录数设置为更大的数字,比如27,kaminari就会开始加载前27页中已经显示的副本 在我的开发应用程序中,我总共只有30条记录。第一页确实显示了27个,第2页应该只显示3个,但是它最终显示了第一页的14个副本,然后在另一页上显示了最后3个副本 有人知道为什么它会以副本的形式加载,而不是只显示第2页的最后

我正在Rails 4应用程序中使用Kaminari和AJAX。到目前为止,我已经能够为第一页显示不同数量的记录(13条),但之后每一页显示14条记录。这或多或少是完美的

但是,一旦我将第一页的记录数设置为更大的数字,比如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>
$('#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) %>");

'页面/六边形',:locals=>{:dabbles=>@dabbles,:count=>1}%>
正确%>
index.js.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>
$('#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) %>");
$(“#fresh”).append(“'pages/hexagons',:locals=>{:dabbles=>@dabbles,:count=>0}%>”;
$(“#更正”).append(“'pages/corrections',:locals=>{:correction=>correct_helper(@dabbles.size)}%>”;
$('#paginator').html(“true)%>”;

我认为Kaminari检测每页的项目使用.per方法计数,当您第一次调用.per(27)时,您将获得前27个元素。在第二页,你可以看到15..28个元素(不是27..41)

这样试试

@paginated_dabbles = Kaminari.paginate_array(@dabbles[27..-1])
@page = (params[:page] || '1').to_i

if @page == 1
   @dabbles[0...27]
else
   @paginated_dabbles = @dabbles.page(params[:page]).per(14)
end