0

ここで AJAX Kaminari の例に従いました: https://github.com/amatsuda/kaminari_example/tree/ajax

パーシャルとテーブルを正常に生成しました。ただし、ページネーションでページを押してもテーブルは更新されません。実際、押すと、クエリはまったく同じデータになります。

同様の問題を見つけましたが、解決策は未解決のままです: kaminari ajax pagination not updates the paginate

#paginator 要素を使用していることを確認できます。

別の js.erb ファイルを作成する代わりに、私が別の方法で行ったいくつかのことを追加しました。

<script>

$('#paginator').html('<%= escape_javascript(paginate(@pending_requests, :remote => true).to_s) %>');
$('#requests').html('<%= escape_javascript render (@pending_requests) %>');

</script>

私のhtml.erbファイルの最後に。

また、ビューでは、ajax リクエストを使用して、テーブル内のさまざまなデータを選択します。たとえば、ユーザーを選択すると、ビューで AJAX を使用して適切なテーブルがレンダリングされる select_tag があります。テーブルはパーシャルではなく、コントローラーに独自のビューとメソッドがあります。最初は、これが原因でテーブルが更新されていないのではないかと疑っていました。ただし、テーブルの URL に移動しても、まだページネーションを使用できません!

編集: ページネーション リンクを右クリックして別のタブで開くことができます。それらをクリックしても何も起こりません。

編集:

Twitter Bootstrap を使用していることを付け加えたいと思います。コントローラーに設定すると気づきました

format.html { render :layout => false }

次に、別のページへのページネーション リンクの 1 つを開くと、正常にページネーションできます。私はカミナリのブートストラップテーマを使用していますが...

4

1 に答える 1

1

コメントを追加する場所が見つからなかったので、これは本当の答えではありません。

AJAX でのみテーブルをレンダリングしますか? 別のページの一部ですか?それともスタンドアローンビューですか?

私は同様の問題を抱えていました (カミナリタグページリンクの前の最後の投稿では、テーブルをショービューで部分的にレンダリングするか、別のページとしてレンダリングするオプションがありました.スクリプト タグですが、あなたのタグはドキュメント対応関数にラップされていないため、ページが完全に読み込まれない可能性があります。試してみてください。

<script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    $('#paginator').html('<%= escape_javascript(paginate(@pending_requests, :remote => true).to_s) %>');
    $('#requests').html('<%= escape_javascript render (@pending_requests) %>');
  })
</script>
于 2013-01-07T22:04:14.340 に答える