0

我以前问过这个问题,但我想我已经知道问题可能出在哪里。

我有一个页面,其中包含一个表格 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。我无法通过单击分页链接来更新表格。

4

1 回答 1

0

When you right-click and open the links, it's requesting a "html" response.

When you click on :remote => true links, it requests a "js" response....

You will need to create a (I assume it's "index" action?) index.js.erb view with the Javascript to "update" the #table with the new data.

于 2013-01-29T08:22:58.073 回答