2012-08-31 63 views
0

find_each我有一個巨大的記錄集顯示和使用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| 

有沒有辦法來分頁這樣的一大組記錄?

+0

,應該工作。你是否收到任何錯誤信息?你在視圖中使用了will_patginate @collection嗎? – Prem

+0

= will_paginate(@collection)給我留下了錯誤:未定義的方法'TOTAL_PAGES' – simonmorley

+0

沒有ü嘗試保存查詢到像@syslogs一個變量,並使用在‘will_paginate(@syslogs)’? – Prem

回答

0

使用will_paginate 3.0.3,我發現實際的解決辦法是要做到這一點:

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

發現在will_paginate wiki上。

利用這一點,我不需要find_each或批量大小和擁有的在瞬間負載記錄幾十萬。

感謝@prem他的初始幫助。另外一個幫助。

1

嘗試火查詢中使用,其中在PAGINATE如下

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

這應該工作:)

+0

暫時放在哪裏。使用你的方法,相同的結果 - 沒有錯誤,沒有分頁..非常奇怪! – simonmorley

+0

驗證您的應用程序除了will_paginate克,並嘗試採取colelction到一個變量,並使用該 – Prem

+0

移動find_each到控制器給我一個錯誤:沒有給出(收益率)塊。這就是爲什麼我暫時去看待。 WP gem在其他地方工作 – simonmorley