2010-04-13 1 views
0

여기에서 더 많은 사람들의 의견을 원하기 때문에 이것을 다시 열어보기로했습니다. 나는 전체 코드가 아니라 오히려 당신의 접근 방식을 찾고 있습니다.레일 - 스택 오버플로에서 사용자 프로필처럼 인덱스 작업 /보기를 코딩하는 방법은 무엇입니까?

Stackoverflows 사용자 프로필 (사용자 색인)은 매우 복잡하며 약 7 개의 탭이 있으며 각 탭마다 다른 방식으로 데이터가 표시됩니다. 거의 그것들은 테이블 화 된 데이터를 위해 다른 부분을 사용하는 각각의 미니 뷰와 같습니다. 나는 아직 레일에 비교적 익숙하지 않고 부분적인 부분을 사용하는 방법을 알고 있지만 어떻게 볼 수는 없다. 혼자서이이를 해결할 수있다.

Im 또한 마스터 인덱스보기에서 거대한 if else 문을 사용하여 표시 할 탭/미니보기를 감지하지 않으려면 어떻게해야하는지 궁금합니다. stackoverflow의 경우 약 7 개의 case 문이 있습니다.

끝 편집.

원래 질문은 다음과 같습니다.

사용자 프로필 영역의 stackoverflow에는 질문 및 그래프와 같이 서로 다른 정보를 표시하는 많은 탭이 있습니다. 그것도 같은 전망과 메신저 궁금해 컨트롤러에서 스키니와 로직을 최소한으로 유지하면서 레일에서 이것을 달성하기 위해 최선을 다하고 있습니다.

def index 
     @user = current_user 
     case params[:tab_selected] 
      when "questions" 
       @data = @user.questions 
      when "answers" 
       @sentences = @user.answers 
      else 
       @sentences = @user.questions 
     end 
     respond_to do |format| 
      format.html # index.html.erb 
     nd 
    end 

하지만 인덱스 뷰에서 if 및 else statments를로드하지 않고 처리하는 방법은 무엇입니까? 그리고 질문과 답변이 다르게 제시되면이 문제를 해결하는 가장 좋은 방법이 무엇입니까?

답변

2

두 개의 부분 : _questions.html.erb_answers.html.erb을 만듭니다. tab_selected을 기반으로 부분을 호출하십시오.

index.html.erb

<%= render :partial => (params[:tab_selected] == "answers") ? "answers" : 
         "questions") %> 
관련 문제