0

我有一个使用 will_paginate 分页的项目列表,这很好用。我终于按照railscast的说明实现了 AJAX ,它就像一个魅力。但是,现在,当我导航到某个项目的页面,然后单击“返回”链接时,页面和排序都丢失了。

例如,在书籍列表中,如果我按标题对它们进行排序并转到第二页,然后单击一本书,则效果很好。然后,当我单击“返回”时,我将返回列表的第一页而不进行排序。我知道这是因为 URL 不再使用 AJAX 调用更新。

如何在我的 Rails 应用程序中使用 AJAX 维护反向链接的分页和排序?

这是我用来实现 AJAX 的代码:

结果.js.erb:

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

分页.js:

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

从书页,我简单地使用:

request.referer

返回列表。

4

1 回答 1

1

经过大量搜索并且无法找到合适的解决方案,事实证明railscasts在另一篇文章中一直有答案。将这些行添加到 pagination.js 就可以了:

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

这会随着每个 AJAX 请求更改 URL。比我正在考虑的其他解决方案简单得多。

于 2013-05-10T03:16:39.143 回答