2013-05-09 1 views
0

У меня есть список элементов, разбитых на страницы с использованием will_paginate, и это отлично работает. Я, наконец, реализовал AJAX, следуя инструкциям от railscast, и он работает как шарм. Однако теперь, когда я перехожу к странице элемента, а затем нажмите ссылку «назад», страница и сортировка будут потеряны.Как мне связать страницу с разбитым на страницы и отсортированным списком, если этот список реализован с использованием AJAX. Я использую Rails 3.2

Например, в списке книг, если я отсортирую их по названию и перейдите на вторую страницу, затем щелкните по книге, которая отлично работает. Затем, когда я нажимаю «Назад», я возвращаюсь к первой странице списка без сортировки. Я понимаю, это потому, что URL-адрес больше не обновляется с помощью вызова AJAX.

Как сохранить разбиение на страницы и сортировку для обратных ссылок с AJAX в приложении для рельсов?

Это код, который я использую для реализации AJAX:

results.js.erb:

$("#search_results").html("<%= escape_javascript(render :partial => "layouts/search_results_list").html_safe %>"); 

pagination.js:

$(function() { 
    $("#search_results").on("click", ".sort a, .pagination a", function() { 
    $.getScript(this.href); 
    return false; 
    }); 
}); 

На странице книги, я просто использование:

request.referer 

to go вернуться к списку.

ответ

1

После многих поисков и не в состоянии найти подходящее решение, получается, что railscasts ответил на все вопросы в другом сообщении. Добавление этих строк в pagination.js сделал трюк:

history.pushState(null, "", this.href); 
$(window).bind("popstate", function() { 
    $.getScript(location.href); 
}); 

Это изменяет URL при каждом запросе AJAX. Гораздо проще, чем другие решения, которые я рассматривал.

 Смежные вопросы

  • Нет связанных вопросов^_^