ajaxを使用して単一ページに二重ページネーションを実装しています。このページネーションの 1 つはエンドレス ページですが、それは問題ではないと思います。
私のコードはとてもシンプルです:
コントローラ:
@products = @brand.products.search(params[:search]).paginate(:page => params[:product_page], :per_page => 3)
@comments = @brand.comments.paginate(:page => params[:comment_page], :per_page => 5)
show.html.erb
<%= will_paginate @comments, :param_name => 'comment_page' %>
<%= will_paginate @products, :param_name => 'product_page' %>
そして、show.js.erb (これが間違っています)
//Endless comment pagination
<% if params[:paginate] == 'comment_page' %>
$("#comments").append("<%= j ( render @comments) %>");
<% if @comments.next_page %>
$(".pagination").replaceWith("<%= j will_paginate @comments %>");
<% else %>
$('.pagination').remove();
<% end %>
<% end %>
<% if params[:paginate] == 'product_page'%>
//Product pagination
$('#products').html('<%= escape_javascript(render :partial => "products") %>');
//I put this because if I didn't, ajax just works once.
$('.pagination a').attr('data-remote', 'true');
<% end %>
しかし、params[:paginate] == 'comment_page' と params[:paginate] == 'product_page' は機能しません。
そのカップル行を入れなくてもうまくいきますが、そのうちの1つをページネーションすると、もう1つもページネーションされます。
ありがとう!