以前にも質問したことがありますが、問題が何であるかは理解できたと思います。
テーブルdivを保持するページがあります。私はAJAX呼び出しを使用してテーブルを取得します(部分的ではなく、コントローラーに独自のメソッドを持つ別のtable.html.erbです)。
この table.html.erb では、AJAX ページネーションに関するカミナリのガイドラインに従いました。既にあるのに、ページネーションに別の AJAX 呼び出しを使用するのはなぜですか?
ページネーション リンクをクリックすると、Kaminari はリンクを div 内ではなくページ全体にページ付けするためです。
したがって、テーブル div と呼ばれる AJAX 内でパーシャルを使用している理由。しかし、私は今次のページや他のページに行くことができません。私のコンソールでは、正しいクエリが作成されています。実際に右クリックして別のタブでページを開くと、リンクを変更できます (アプリケーションのレンダリングとブートストラップ レイアウトを無効にした場合のみ)。
もう 1 つの理由は、ビューと呼ばれる別の 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>
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>
部分: _item.html.erb
<tr>
<td> item.name </td>
<td> item.date </td>
</tr>
要約すれば、
ページネーション リンク (1、2、3、... 次、前) を別のタブまたは完全なページ URL として開くことができます。ページネーション リンクをクリックしてもテーブルを更新できません。