рельсы ajax нумерация страниц с частями - PullRequest
1 голос
/ 16 января 2012

Я использую волю для разбивки на страницы для нумерации страниц.У меня все в порядке, я пытаюсь это исправить, и я следовал учебнику http://railscasts.com/episodes/240-search-sort-paginate-with-ajax.Но запрос Ajax не уволен для меня.

У меня есть индексное представление.Представление отображает часть, называемую _browser_form, которая, в свою очередь, отображает часть, называемую _listing.Поэтому я хотел разбить таблицу на листинге.Пожалуйста, дайте мне знать, если в моем подходе есть какие-либо ошибки.

Мой контроллер:

def index

         @ics = Ic.search(params[:root_name],params[:suite_name],params[:case_name],params[:name],'f').paginate(:per_page =>5, :page => params[:all_ics])
         respond_to do |format|
          format.html # index.html.erb
          format.xml  { render :xml => @ics }
        end
      end

Мой _browser_form.html.haml, который отображается из index.html.haml

- form_tag "/ics/mass_action", :method => :post, :multipart => true do
  <div id="update_ics_table">
  = render "listing", :show_check_boxes => show_check_boxes, :root_name=>params[:root_name],:suite_name=>params[:suite_name],:case_name=>params[:case_name],:name=>params[:name],:ic_filter=>1
  </div>
   =will_paginate @ics,:param_name=>:all_ics

Мой файл index.js.erb:

$('#update_ics_table').html("<%= escape_javascript(render :partial => 'listing' ,:object => @ics) %>")

Мой файл .js:

$(function () {
  $('#update_ics_table .pagination a').live('click',
    function () {
      $.getScript(this.href);
      return false;
    }
  );
});

Спасибо, Рамя.

Ответы [ 2 ]

1 голос
/ 16 января 2012

Удалите то, что вы делаете в Javascript и сделайте это в контроллере:

format.js {
  render :update do |page|
    page.replace 'listing', :partial => 'listing'
  end
}

Аналог: Лучший способ заставить will_paginate работать с Ajax

0 голосов
/ 02 августа 2012

Возможно, это связано с тем, что вы используете представления HAML и файл js.erb, но я не использую HAML, поэтому не могу быть уверен. Посмотрите ответ nex3 на это SO: Как отправить обратно js.haml по рельсам

Если это не так, я думаю, вам нужно изменить свой блок действий response_to на контроллер:

respond_to do |format|
          format.html # index.html.erb
          format.xml  { render :xml => @ics }
          format.js #<------ This will execute index.js.erb
end
...