2013-04-23 11 views
6

Kaminariを使用して、「ロードを増やす」ajaxページネーションを作成したいと考えています。 私はこのコードを使用しています:Rails:Ajax&Kaminariの 'Load More'ボタン

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'))%>"); 

をしかし、問題は、部分的にでリフレッシュされることはありません、私は「より多くのロード」をクリックしたとき、それは常に2件の同じ記事を示したということです私が好きなように、さらに2つの記事。

+3

@article = Admin :: Article.page(1).per(2) 'は@articles = Admin :: Article.page(params [:page])にしないでください。per(2)' –

+0

私はばかです。あなたの素早い答えをありがとう、それは動作します! –

+0

うれしい;) –

答えて

2

他の人に役立つかもしれない問題が発生しました。 jQueryのバージョンに応じて、#load_more_linkreplaceWithindex.js.erbに使用しないでください。最後に「もっと」ボタンを置き換えることはありませんので、$('#load_more_link').replaceWith('');と:、link_to_nextはラインを作り、空になりますあなたのセットの最後のページにあるように、空のreplaceWithは、何もしないことを回帰(http://bugs.jquery.com/ticket/13401)があり

、データセットの最後のページをロードし続けます。

jQueryバージョンを更新するか、replaceWithの代わりにempty().html('...')を使用することで修正されました。

関連する問題