2010-05-20 4 views
0

내가 이루고자하는 일에 가장 좋은 방법이 있는지 궁금합니다 ...사용자가이 루프를 다시 작성 하시겠습니까?

먼저 우리는 모델 카테고리, 카테고리, has_many 게시물을 가지고 있습니다.

이제 사용자가 게시물을 추가한다고 가정 해 보겠습니다.


이제 현재 사용자의 게시물 만 범주별로 표시하고 싶은 페이지가 있습니다. 내가 좋아하는 뭔가를 A, B, 그리고 C

사용자 1, 카테고리 (A)에 게시하고 내보기에서 B.


:


우리는 다음과 같은 범주가 있다고 가정하자 :

<% @categories.select {|cat| cat.posts.count > 0}.each do |category| %> 
    <%= category.name %><br/> 
    <% category.posts.select {|post| post.user == current_user}.each do |post| %> 
    <%= post.content %><br/> 
    <% end %> 
<% end %> 

거의 대부분이 거기에 있습니다. 문제는 어떤 게시물이 전혀 (현재 사용자가 해당 범주에 입력하지 게시물이있는 경우에도 그 안에 입력 한 경우는 아직 빈 카테고리를 표시합니다입니다

은 그래서 질문으로 귀결된다.

어떻게 다음 루프는 현재 사용자의 범주에 게시물을 계산해야합니까

할 .each 0} | 카테고리 | %>

보다도, 엘리엇

답변

1

내가 좋아하는 뭔가를 할 것 :

+0

안녕하세요. J, 의견을 보내 주셔서 감사합니다. - 해당 항목을 작성한 후 @categories는 각 사용자의 카테고리를 중복 시켰습니다. 즉 사용자가 업무에 2 회 게시하고 영화에 3 회 게시 한 경우 @categories var에 저장 : 비즈니스 비즈니스 영화 영화 영화 이를 방지하는 방법을 어떤 생각? – Elliot

+0

', : uniq => true'를'has_many : through'에 추가해야합니다. 자세한 내용은 http://blog.hasmanythrough.com/2006/5/6/through-gets-uniq를 참조하십시오. – kikito

+0

@ 엘리엇 : egarcia가 말했듯이,'uniq => true'가 빠졌습니다 ... 중복 된 카테고리없이 작동합니다 :] –

관련 문제