7

カミナリで結果をロードするために、「詳細」ボタンで「Twitterのような」ページネーションを実行しようとしています。

私はここでこの質問を見つけました

しかし、それを機能させる方法と、それが良いアプローチであるかどうかはわかりません。

前もって感謝します

4

2 に答える 2

17

「もっと」ボタンが必要ということですか?このようなヘルパーを作成してみませんか?

# usage: 
#   link_to_next_page(@items)
#   link_to_next_page(@items, :remote => true)  # Ajax
def link_to_next_page(scope, name, options = {}, &block)
  param_name = options.delete(:param_name) || Kaminari.config.param_name
  link_to_unless scope.last_page?, name, {param_name => (scope.current_page + 1)}, options.merge(:rel => 'next') do
    block.call if block
  end
end

この種のヘルパーメソッドが役立つと思われる場合は、このメソッドを宝石に含める準備ができています。ご意見をお聞かせください。ありがとう!

于 2011-05-05T02:30:09.960 に答える
2

link_to_next_page(@items, :remote => true)箱から出して正しく機能しないことに注意してください。Ajaxリクエストの後で現在のページを判別する方法がないため、新しいアイテムがフェッチされた後にリンクを置き換える必要があります。控えめなJavaScriptを使用すると、次のようになります。

# app/views/items/index.js.erb
$(".items").append("<%= escape_javascript(render(@items)) %>");
$(".more_link").replaceWith("<%= escape_javascript(
    link_to_next_page @items, 'View more',
                        :remote => true,
                        :id     => :view_more) %>");

これが意味をなさない場合は、Railscastsの控えめなJavascriptスクリーンキャストをご覧ください。

于 2012-04-24T20:56:29.920 に答える