私はRubyアプリケーションで私のルビーのためにカミナリの宝石を使用しています(まだwill_paginateを使っている人は、私は切り替えを検討することをお勧めします!KaminariでAjaxページネーションのコントローラとアクションを指定する方法は?
問題は、AJAXページネーションを実行するときにコントローラーアクションを指定したいということです。私は設定した場合、デフォルトでは
<%= paginate @feeds, :param_name => :page, :remote => true%>
::のような、リモートで作業するために私のページネーションを取得=>真のリモート、そして私の「ページ」のコントローラhome.js.erbファイルに次の行を追加し、それが上の作品私のホームページ。私は参照する部分的なjsを指定する必要はありません。自動的に選択されます。
$('.synopsis').html('<%= escape_javascript render('exchanges/synopsis', :feeds => @feeds)%>');
$('.paginator').html('<%= escape_javascript(paginate(@feeds, :param_name => :page, :remote => true).to_s)%>')
しかしキャッチは、この「概要」のdivは、私は自分のアプリケーション内の別のページの多くにレンダリングすることを部分的であるということです。したがって、コントローラが私の "ページ"コントローラでないページでは、リモートページネーションは機能しなくなりました。
1つの解決策は、私の多くの異なるコントローラのjs.erbファイルにこれらの2行を追加することです。しかし、それは冗長であり、控えめである。
「ページング」コールでは、コントローラとリモート呼び出しに使用するアクションを指定できます。それで、私は次のような行動をとると思います:
def paginate_remotely
respond_to paginate_remotely.js
end
どうすればいいですか?このような単純な質問のようですが、私はそれを理解することができませんでした。以下は確かに動作しません:以下のように、のparams仕様:興味がある人のために
<%= paginate @feed_exchanges, :param_name => :exchange_page, :remote => true, :controller => :exchanges, :action => :paginate_remotely %>