2011-08-17 82 views
0

我在我的Rails應用程序中使用了分頁寶石(kaminari),並且很難排序Mongo文檔的集合。在Rails中對分頁的Mongoid集合進行排序

首先構建我的查詢,這是檢索的所有用戶的最新評論一個頁面的:​​

comments = user.comments.desc(:created_at).page(params[:page]) 

默認情況下,這會給我25分的記錄。那麼我想呈現每個評論,但現在顛倒順序,使最新的評論將在底部:

comments.asc(:created_at).each do |comment| 
    - render the comment 

然而,在我的意見呼籲遞增變量,它只是重新定義查詢,並給我該用戶最古老的評論,而不是最新的評論。

如何檢索集合並對該對象進行排序,而不是簡單地更改查詢範圍?

回答

2

如果您在mongoid查詢中調用to_a,它將在該點執行查詢。

comments = user.comments.desc(:created_at).page(params[:page]) 
comments.to_a.reverse.each do |comment| 
    - render the comment 

所以我們稱之爲評論到一個數組,然後扭轉陣列

+0

輝煌,謝謝!不知道這是多麼明顯,但我是新的。感謝你的幫助。 – Greg

+0

不客氣 - 這不是一個明顯的mongoid行爲。 –

相關問題