0

表示するレコードの膨大なセットがあり、find_eachを使用してクエリを分類しました。

 - Syslog.find_each(:batch_size => 2000) do |s|
   = s.something

問題は、ページネーションを導入しようとしていることです。will_paginate(3.0.3)を試しました:

 - Syslog.paginate(:page => params[:page], :per_page => 10).find_each(:conditions => {  }, :batch_size => 2000 ) do |s|

このような大量のレコードをページ分割する方法はありますか?

4

2 に答える 2

1

以下のように、paginate の where を使用してクエリを起動してみてください

Syslog.paginate(:page => params[:page], :per_page =>10).where(conditions: "your condition")

それはうまくいくはずです:)

于 2012-08-31T08:18:55.993 に答える
0

will_paginate 3.0.3 を使用して、実際の解決策はこれを行うことであることがわかりました。

Model.accessible_by(current_ability).page(params[:page]).order('id DESC')  

will_paginate wikiで見つけました。

それを使用すると、find_each やバッチ サイズは必要なく、何十万ものレコードを瞬時に読み込むことができます。

最初の助けをしてくれた @prem に感謝します。アシスト用にプラス1。

于 2012-09-24T15:10:35.553 に答える