2014-02-27 6 views
1

내 응용 프로그램은 다른 사용자 유형/모델 (예 : 의사 및 의료 기관)을 가지고 있습니다 (올바른 이름이 btw인지 확실하지 않음). 그들은 사용자에게 다형성의 연관성이 있습니다.레일 - 사용자 유형에 따라 다른 "대시 보드/사용자 프로필"렌더링?

이 컨트롤러 지금까지 :

HomesController이 - 사용자가 로그인하거나하지 않은 경우 확인합니다. '예'인 경우 방문 페이지로 리디렉션되지 않으면 dashboard_path로 리디렉션합니다.

DashboardsController - "현재 사용자 프로필 표시" 코드 :

class DashboardsController < ApplicationController 
    before_filter :authenticate_user! 
    def show 
    @user = current_user.profile 
    render "#{@user.dashboard_something_variable}_dashboard" 
    end 
end 

컨트롤러를 분할 하시겠습니까? DoctorsController의 쇼 액션은 다른 사람들이 의사 프로필을 볼 수있는 것이지 의사의 프로필/사적인 것을 보는 것이 아닙니다.

감사합니다.

<%= render @partial %> 

그런 다음 각 컨트롤러의 견해 폴더, 예를 들어,의 부분보기 절약 할 수 : show.html.erb에서

+0

사용자 유형별로 얼마나 다른 내용이 필요합니까? 더 나은 대답을 위해서는 도움이 될 것입니다. – DDDD

+0

기관은 의사가 수행 할 수있는 작업을 게시합니다. 나는 당신이 "의사를위한 전자 상거래"라고 말할 수 있다고 생각합니다. 공유 된 부분 (이름, 프로필 링크 편집 등)과 공유 된 부분 (작업 게시, 응답 작업 ...)이 없습니다. 어떻게 생각해? –

+0

각 사용자 유형에 대한 레이아웃 부분이 있어야한다고 생각합니다. 그런 다음 사용자 유형에 따라 렌더링하십시오. – DDDD

답변

1
당신은 각 뷰에 대한 부분을 설정할 수

..

def show 
    # ... 
    @partial = current_user.profile # 'doctor', 'radiologist',... 
end 

_doctor.html.erb, _radiologist.html.erb.

+0

'show.html.erb'와 컨트롤러 내부에서의 렌더링의 차이점은 무엇입니까? "공유 레이아웃"을 가지고 있습니까? –

+0

나를 위해 그것은 단지 청소기입니다. comon은'show.html.erb'에있을 것이고 독특한 것들은 부분적으로 갈 수 있습니다. – crispychicken

관련 문제