Использование разбивки на страницы ajax (will_paginate) для нескольких групп одной и той же модели

#ruby-on-rails #will-paginate

#ruby-on-rails #будет разбивать на страницы

Вопрос:

Я запустил разбивку на страницы ajax, используя mislav-will_paginate с js, найденным здесь:https://github.com/mislav/will_paginate/wiki/Ajax-pagination но я столкнулся с ситуацией, с которой я не уверен, как справиться. У меня есть несколько групп (одной и той же модели), и у каждой группы есть несколько списков, разбитых на страницы. Я не могу сказать, для какой группы загружать списки в вызове разбивки на страницы ajax. Это код, который я использую:

 function ajaxPagination(){
  var container = $(document.body)
  if (container) {
    container.observe('click', function(e) {
      var el = e.element();
      if (el.match('.pagination a')) {            
        new Ajax.Request(el.href, { method: 'get' })
        e.stop()
      }
    })
  }
}

<% @groups.each do |group| %>
   <% lists = group.lists.paginate(:page => params[:group_page], :per_page => 5) %>
   <% lists.each ....  %>
   <%= will_paginate lists, :params_name => "group_page" %>
<% end %>
  

Ответ №1:

Вам нужно улучшить свой JS, чтобы знать, на какую «группу» вы нажимаете.

 $("#<%= group %>").html("<%= escape_javascript(render("group")) %>");
  

Смотрите: http://railscasts.com/episodes/174-pagination-with-ajax или прочитайте это на: http://asciicasts.com/episodes/174-pagination-with-ajax

 $('.group').click(function(){
    $.ajax({
       type: "GET",
       url: "/group",
       data: { 'group' : $(this).attr('id') }
       success: function(data){
         alert( "Success" );
       }
     });
});
  

Комментарии:

1. Я не уверен, что это отвечает на мой вопрос. Как мне выяснить, какая разбивка на страницы группы была нажата в контроллере?

2. На основе элемента, на который был нажат (обратите внимание, что это в jQuery) (ответ обновлен)