2012-12-14 2 views
0

간단한 메시지 게시판 시스템을 작성 중입니다. 조상에 대한 한 가지 사실은 단일 호출을 사용하므로 제한 및 오프셋을 호출하면 최상위 요소의 일관된 목록을 반환하지 않는다는 것입니다. 페이지 매김 처리를 위해 @per_page와 the_offset이 필요합니다.상위 항목을 고려한 오프셋 및 한도

그래서 나는 현재 이런 일이 :

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

을하지만, 요소 (즉 조상이 NULL) 오프셋 및 @per_page 최상위를 반영하지 총 번호가 필요합니다.

어떻게하는지에 대한 아이디어가 있으십니까? 사전

답변

1

에서

들으 단일 DB 쿼리와 함께 할 수 없습니다.

이유는 10의 페이지 매김을 사용하면 10 개의 최상위 게시물 (실제로는 15 개의 게시물)을 표시하지만 다음 10 개의 최상위 게시물에 대해서는 20 개의 실제 게시물을 표시 할 수 있습니다. 페이지 매김 크기가 다릅니다.

다른 방법으로 처리하려면 실제 페이지에 ancestry is null 및 제한 및 오프셋을 적용하는 두 가지 쿼리가 있어야합니다. 다른 검색어는 이전 검색어에있는 게시물의 모든 하위 항목 인 모든 게시물을 가져옵니다.

+0

thx 답변입니다. 그래, 나는 두 번째 아이디어로 시작했고, 단지 그것을 할당했다. 조금 낭비되었다. 그것에 대해 생각해야 할 것입니다. 우리는 acts_as_tree를 다른 부분에서 사용하고 있으며, 이것을 사용하는 것을 생각하고 있습니다. – timpone