Rails将_paginate和ajax附加页面

时间:2013-09-01 05:12:11

标签: ruby-on-rails ruby-on-rails-3 jquery will-paginate

每次用户点击“更多”时,我都会使用带有ajax的will_paginate gem将下一页附加到索引的底部 - 我注意到的问题是超过第二页,点击更多只是附加了第二页再次 - 我错过了什么?

index.html.erb

<ul class="items" id="event-index">
<%= render 'events' %>
</ul>
<%= will_paginate @events, :previous_label => '', :next_label => 'More', :remote => true %>

index.js.erb的

$('#event-index').append('<%= escape_javascript(render("events")) %>');

<% if @events.total_pages == @events.current_page %>
    $('.pagination').remove();
<% end %>
<% if @events.current_page %>
    $('.ajaxload').hide();
<% end %>

1 个答案:

答案 0 :(得分:0)

您的设置问题是显示下一页的链接未更新。它总是显示第二页。我能想到的最简单的解决方案是始终删除分页并重新渲染它。

$('#event-index').append('<%= escape_javascript(render("events")) %>');
$('.pagination').remove();

<% if @events.next_page %>
  $('#event-index').after('<%= will_paginate @events, :previous_label => '', :next_label => 'More', :remote => true %>');
<% end %>

<% if @events.current_page %>
  $('.ajaxload').hide();
<% end %>