我以前问过这个问题,但我想我已经知道问题可能出在哪里。
我有一个页面,其中包含一个表格 div。我使用 AJAX 调用来获取一个表(不是部分的,它只是另一个 table.html.erb 在其控制器中有自己的方法)。
在这个 table.html.erb 中,我遵循了 Kaminari 的 AJAX 分页指南。如果我已经有一个 AJAX 调用,为什么还要使用另一个 AJAX 调用来分页?
因为,如果我点击分页链接,Kaminari 会将链接分页到整个页面,而不是在 div 内。
因此,为什么我在称为 table div 的 AJAX 中使用部分。但是,我现在无法转到下一页或任何其他页面。在我的控制台中,正在进行正确的查询。当我实际右键单击并在单独的选项卡中打开页面时,我可以更改链接(仅当我禁用应用程序的呈现和引导布局时)。
刚刚提到的一个原因,我怀疑的另一个原因是,由于我在另一个名为 view 的 AJAX 中有一个部分,如果我在单击 Kaminari 的另一个页面后不对表进行 AJAX 调用,则表实际上不会更新.
总结一下:
index.html.erb
<div id="table"><div>
<script> $.ajax({
url: "http://localhost:3000/request/table",
type: "GET",
success: function(data) {
$("#table").html(data);
}
});
</script>
显示.html.erb
<table id="table">
<thead>
<tr>
<th> Boop! </th>
</tr>
</thead>
<tbody id="items">
<% render @items %>
</tbody>
<div id="paginator">
<%= paginate @items, :remote => true %>
<%= page_entries_info @items, :remote => true %>
</div>
</table>
<script>
$('#analytics').html('<%= escape_javascript render(@items) %>');
$('#paginator').html('<%= escape_javascript(paginate(@items, :remote => true).to_s) %>');
</script>
部分:_item.html.erb
<tr>
<td> item.name </td>
<td> item.date </td>
</tr>
总之,
我可以在单独的选项卡中打开分页链接(1、2、3、... Next、Previous)或作为整页 URL。我无法通过单击分页链接来更新表格。