2011-04-13 2 views
0

레일 3을 사용하고 있습니다. 트리플 중첩 된 리소스에서 성공적으로 작업 할 예정입니다. 다른 컨트롤러에서 페이지 매김보기 (페이지 1 2 3 4)로 연결하는 데 문제가 있습니다. 하나의 컨트롤러에 있지만 내 페이지 매김은 중첩 된 컨트롤러에서 발생합니다. 컨트롤러 '섹션'과 '답변'이 있다고 가정 해보십시오. 내 쇼 '주제'컨트롤러에서는 모든 답변에 대한 페이지 매김을 수행합니다 (주제의 경로를 기반으로 답장을 가져 오기 때문에). 이제 나는 주제 섹션의 다른 페이지 (페이지 당 약 7 개의 답변)에 연결하려고하는 쇼 섹션보기에 있습니다. 섹션 컨트롤러에 있기 때문에보기의 항목 루프에 의존하기 때문에 항목의 회신을 쉽게 매이지 할 수 없습니다. 또한 주제 이름 옆에 '이전'및 '다음'링크가 꼭 필요한 것은 아닙니다. 단지 (1 2 3 ... 10) 또는 이와 비슷한 것이 필요합니다. 다른 컨트롤러에서 사용하기 위해이 페이지 매김을 저장하는 방법이 있습니까?레일 3 디스플레이는 다른 뷰의 페이지를 페이지에 표시합니다.

가장 쉬운 방법은 무엇입니까?

이 경우 당신이 힘든 시간을 이해하는 데 문제가있는 뷰는 다른 페이지로 연결되는 전형적인 포럼 게시물과 같다 :

Section 
    Topic A (1 2 3) 
    Topic B (1) 
    Topic C (1 2 3 ...5) 
    Topic D (1 2 3 ...10) 

하지만 컨트롤러에서 will_paginate를 사용하는 방법을 잘 모르겠어요 페이지 매김에 대해 아무것도 모르는

+0

문제를 더 잘 표시해야하는 코드를 게시하십시오. – jvatic

답변

0

내 질문에 답변 해 주셔서 죄송합니다. 이것을 이해하는 데는 시간이 걸렸습니다.

will_paginate 표시 방법을 사용하지 않고 알아 냈습니다. 나는 내 도우미를 만들었다. 이 일이 '올바른'방식인지는 모르겠지만 작동합니다. 주제 옆에 페이지 번호를 출력하는 도우미를 만들었습니다. 기본적으로

def pageLinks(t, s) 
    html = "" 
    if t.replies.count > 7 
     pageList = [] 
     1.upto(t.replies.count/6) {|n| pageList << "#{link_to n, section_topic_path(s, t, :page =>n) } "}  
     html << "| page (#{pageList})" 
     html.html_safe 
    else 
     return 
    end 
end 

내가 내가 원하는 페이지 당 결과의 양과 링크로 분할 :이처럼 만든 도우미에 그럼

<% @topics.each do |topic| %> 
    <%= pageLinks(topic, @section) %> 
<% end %> 

: 내보기에, 내가 좋아하는 그룹이 있었다 그걸 바탕으로

이 코드에 대한 흥미로운 점은 잠시 나간 path/section/id/topic/id? page = n을 표시하는 link_to : page => n입니다.이 매개 변수는 다음 매개 변수로 전달해야합니다. 'rake routes'에 나열된 경로를 사용하는 경우 경로. 또한 html 자체를 인쇄하는 것보다 실제 html을 반환하는 데 어려움을 겪었습니다.

관련 문제