2013-03-02 3 views
1

나는 다음과 같은 모델이 있습니다레일 has_many 쿼리

카테고리 :
has_many : sub_categories

Sub_Category :
has_many : 게시물

포스트 :
belongs_to : sub_category

I을 Pjax 탭과 각 카테고리 탭으로 카테고리를 나열 할 페이지를 만들려고합니다. 각 위젯에 5 개의 게시물이있는 위젯에 모든 하위 카테고리를 나열하십시오.

질문 1 :이 작업을 수행하려면 범주 컨트롤러의 게시물과 has_many_through 연결이 필요합니까 (조인 테이블과 함께)?

질문 2 :이 쿼리를 어떻게 구성합니까? 몇 가지 방향에 대해 잠시 동안 살펴 보았습니다.

답변

0

belongs_to :categorysub_category 모델로 먼저 잊어 버리십시오.

당신은 (그래서 조심, 그것은 빠른 아니다)이 같은 작업을 수행 할 수 있습니다

@category.sub_categories.each do |sub_cat| 
    sub_cat.posts.each_slice(5) do |posts| 
    #here you create a widget, posts have at most 5 elements thanks to each_slice method 
    posts.each do |post| 
     #do something with each post 
    end 
    end 
end 
+0

덕분에, 그래 나는 belongs_to를 잊지 않았다 범주를. 이 페이지를 홈 페이지에 넣으므로 응용 프로그램 컨트롤러에 배치해야합니까? – Anthony

+0

이것을 '<% %>'을 사용하여보기에 넣으면 컨트롤러에 @category가 생깁니다. – Kaeros

+0

게시물 컨트롤러를 홈 페이지로 라우팅하고 있지만이 컨트롤러는 카테고리 컨트롤러에 있어야합니다. 그렇다면 응용 프로그램 컨트롤러에 추가해야합니까? 그래서 게시물에 액세스 할 수 있습니까? – Anthony