2011-08-17 2 views
0

내 레일즈 앱에서 페이지 매김 보석 (kaminari)을 사용하고 있으며, 몽고 문서 모음을 정렬하는 데 어려움이 있습니다.레일에서 페이지 매김 몽고드 컬렉션 정렬하기

우선 구조는 사용자의 모든 최신 코멘트 한 페이지의 가치를 검색하는 것입니다 내 쿼리는 기본적으로

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

이 나에게 25 개 기록을 제공 할 것입니다. 나을, 그냥 쿼리를 재정의 내 의견에 변수 ASC를 호출함으로써,

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

당신은 환영합니다 - 몽고이스트의 분명한 행동은 아닙니다. –