我想使用Kaminari创建“更多加载” ajax分页。
我正在使用此代码:

class BienvenueController < ApplicationController
  def index
    @articles = Admin::Article.page(1).per(2)
    respond_to do |format|
      format.html
      format.js
    end
  end
end

# Bienvenue#index

<div class="container"  style="min-width:<%= @width %>px">
<%= render "shared/articles" %>
<%= link_to_next_page @articles, 'Load More', :remote => true, :id=>"load_more_link" %>
# Shared/articles

<% @articles.each do |a| %>
        <article class="<%= a.rubrique.color %>">
                <div class="sharing">
                    <%= image_tag "facebook-32.png" %>
                </div>
                <p class="color<%= a.rubrique.color %>"><i>Le <%= I18n.localize(a.created_at, :format => :long) %>  par David Perrotin</i></p>
                <h1><%= a.titre %></h1>
                <div class="excerpt">
                    <%= a.chapo.html_safe %>
                </div>
                <div class="image">
                    <%= image_tag a.mainphoto.url(:medium), :width=>"100%" %>
                </div>
                <div class="contenu">
                    <%= a.contenu.html_safe %>
                </div>
                <div class="readmore">
                    <%= link_to "Continuer la lecture", article_path(a) %>
                </div>
            </article>
        <% end %>

# index.js.erb

$('.container').append("<%= escape_javascript(render 'shared/articles')%>");
$('#load_more_link').replaceWith("<%= escape_javascript(link_to_next_page(@articles,    'Load More', :remote => true, :id=>'load_more_link'))%>");

但是问题在于,当我单击“加载更多”时,它总是显示两篇相同的文章,而部分内容从未像我希望的那样再被另外两篇文章刷新。

最佳答案

我刚遇到一个可能对他人有帮助的问题。根据您的jQuery版本,请勿在replaceWith中的#load_more_link上使用index.js.erb

有一个回归(http://bugs.jquery.com/ticket/13401),一个空的replaceWith不执行任何操作,因此在您集合的最后一页,link_to_next将为空,这行变为$('#load_more_link').replaceWith('');,因此将不替换最后一个“更多”按钮,因此您ll会持续加载数据集的最后一页。

通过更新jQuery版本或使用empty().html('...')而不是replaceWith进行了修复。

关于ruby-on-rails - Rails : 'Load More' button with Ajax & Kaminari,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16171705/

10-12 16:36