2012-12-14 34 views
0

我正在寫一個簡單的留言板系統。關於祖先的一點是它使用單個調用,所以如果我使用限制和偏移量調用,它不會返回一致的頂級元素列表。我需要@per_page和the_offset來處理分頁。偏移和限制考慮到與祖先的頂級水平寶石

所以我現在有這樣的事情:

@posts=MbPost.where('forum_id=?',params[:id]).offset(the_offset).limit(@per_page).order('updated_at desc') 

但需要的元素的偏移和@per_page用於反射頂層(即祖先是NULL)未總數。

任何想法如何做到這一點?

thx預先

回答

1

您將無法使用單個數據庫查詢。

原因是,如果分頁數爲10,你想顯示10個頂級職位(實際上是15個職位),但在其下一個頁面顯示10個頂級職位,你可能會顯示20個實際職位。分頁大小是不同的。

處理這種情況的另一種方法是查詢兩個:一個用於實際頁面:ancestry is null並應用限制和偏移量。 另一個查詢,然後獲取所有帖子,這是你在以前的查詢中有帖子的任何級別的孩子..

+0

thx for answer。是的,我從第二個想法開始 - 只是把它分配。看起來有點浪費;將不得不考慮它。我們在另一部分中使用acts_as_tree,並且正在考慮使用它。 – timpone