2011-08-17 7 views
0

私はRailsアプリケーションでページネーションの宝石(kaminari)を使用しており、Mongoドキュメントのコレクションをソートするのに苦労しています。Paginated Mongoid CollectionをRailsでソートする

まずIの構造は、ユーザーのすべての最新のコメントの1ページ分を取得するためにある私のクエリは、:デフォルトで

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

これは私の25件のレコードが得られます。私はその後、各コメントをレンダリングするが、今、最新のコメントが下になるように順序を逆にしたい:

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

しかし、変数私のコメントにASCを呼び出すことによって、それだけでクエリを再定義し、私に与えています最新のコメントではなく、そのユーザーの最も古いコメント。

クエリのスコープを変更するのではなく、コレクションを取得してそのオブジェクトをソートするにはどうすればよいですか?

答えて

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

あなたは歓迎です - それはモンゴイドの明らかな行動ではありません。 –

関連する問題