之前我曾问过这个问题,但我想我已经弄清了问题所在。
我有一个页面,其中包含一个表格div。我使用AJAX调用来获取一个表(不是局部的,它只是另一个table.html.erb,在其控制器中有自己的方法)。
在这个table.html.erb中,我遵循了关于AJAX分页的Kaminari指南。如果我已经有一个AJAX调用,为什么要使用另一个AJAX调用呢?
因为,如果我点击分页链接,Kaminari会将链接分页到整个页面,而不是div中。
因此,为什么我在一个名为table div的AJAX中使用partial。但是,我现在无法转到下一页或任何其他页面。在我的控制台中,正在进行正确的查询。当我实际右键单击并在单独的选项卡中打开页面时,我可以更改链接(仅当我禁用应用程序和引导程序布局的呈现时)。
刚才提到的一个原因,另一个我怀疑,是因为我在另一个AJAX调用视图中有部分,如果我在点击另一个后没有对表进行AJAX调用,那么表实际上不会更新Kaminari的页面。
总结:
index.html.erb
<div id="table"><div>
<script> $.ajax({
url: "http://localhost:3000/request/table",
type: "GET",
success: function(data) {
$("#table").html(data);
}
});
</script>
show.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>
partial:_item.html.erb
<tr>
<td> item.name </td>
<td> item.date </td>
</tr>
总之,
我可以在单独的标签页中打开分页链接(1,2,3,... Next,Previous)或作为整页网址。 我无法通过点击分页链接来更新表格。
答案 0 :(得分:0)
当您右键单击并打开链接时,它正在请求“html”响应。
点击:remote =&gt;真正的链接,它要求“js”响应......
您需要使用Javascript创建一个(我假设它的“索引”动作?)index.js.erb视图,用新数据“更新”#table。