2

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つもページネーションされます。

ありがとう!

4

1 に答える 1

0

ヘルパーの:param_nameキーの代わりに、試してくださいwill_paginate:params

  <%= will_paginate @comments, params: { paginate: "comment_page" } %>
于 2013-04-06T00:31:33.260 に答える