2011-11-23 4 views
0

사용자에게 누를 수있는 링크가 있으며 결석 개체 내부의 사용자 정의보기 (new.worker.html.erb)로 이동합니다. 어떻게해야합니까? 대답이를 호출하는 것입니다 덧글에 의해 지적 :사용자 정의 html 파일을 redirect하는 방법

나는 현재 사용자가

편집로 리디렉션 할 위치를 결정하는 staff_type에 대한 사용자의 세션을 확인하는 렌더링라는 내 컨트롤러 내부의 방법 LINK_TO이 당신의 LINK_TO에서보기 관련 컨트롤러는 다음과 같이 컨트롤러의 내부 렌더링을 권리에 대한 검사를 수행 : 관련 뷰 내부의 new_worker보기를 가리키는

if session[:user].staff_type == 3 
     render "new_worker" 

답변

0

입니까? 노동자가 그들 중 하나입니까?

내가 할 수있는 것은 당신이 staff_type을 가진 특정 사람을 볼 때 다른 템플릿을 렌더링한다고 가정하는 직원 컨트롤러에 있습니다. 직원 구성원을 찾은 다음 해당 staff_type 특성을 살펴보고 해당하는 부분을 렌더링하기 위해 if 또는 case를 수행하십시오.

def show 
    @staff = Staff.find(params[:id]) 

    case @staff.staff_type 
    when "worker" 
    render :action => "show", :layout => "worker" 
    else 
    #other options 
    end 
end 

위의 코드는 show 액션 (변수 전달)을 렌더링하지만 worker라는 사용자 정의 레이아웃을 사용합니다.

또는, 위와 같이 렌더링, 나는이 렌더링 사용하여, 같은 골격을 사용하여 다음 각 다른 직원 유형에 대한 서로 다른 부분을 렌더링 권하고 싶습니다 대신 :이 경우

render :partial => "worker", :object => @staff 

,보기 http://rails.rubyonrails.org/classes/ActionController/Base.html#M000464

당신은 정말, 어떤 컨트롤러 액션에 위를 사용할 수 있습니다 아마 여기 _worker.rhtml

참조 정보를 호출 할 것이다. 그러나 컨트롤러에서이 작업을 수행하거나 리소스를 다시 구성해야합니다.

0

그것은이다 전혀 명확하지 않아, 우리에게 결석, staff_type, worker가 무엇인지 더 많은 정보를 주시겠습니까? 이 모든 것들에 대한 경로, 자원 및 통제자가 있습니까? 관계를 통해 연결되어 있습니까?

기본적인 대답은 다음과 같습니다. 레일을 사용하여 템플릿을 렌더링하려면 컨트롤러와 컨트롤러에 액세스하는 경로가 필요합니다. redirect_to new_worker_path이 작동해야합니다.

EDIT : EDIT : 뷰 포인트 (또는 redirect_to와 같은 기타 http 응답)를 렌더링합니다.

레일즈 (저는 2.3.11이라고 생각합니다)는 자원 지향적 인 프레임 워크 인 REST입니다. IMHO 이것을 유지하고 new_absence_path로 리디렉션해야합니다. staff_type에 다른 템플릿을 사용하려면 링크 :type=>'worker'에 인수를 추가하고 컨트롤러에서이 템플릿을 사용하여 특정 템플릿을 렌더링 할 수 있습니다.

가장 좋은 연습 방법은 경로와 동작을 만드는 것입니다. 레일 2.3.11

map.resources :staff, :member => {:new_worker => :get}

에 대한 다음 직원 컨트롤러 정의 : 좋아, 그래서, 다른 직원은 다른 직원 유형은 오른쪽

def new_worker 
    ... 
    render 'new.worker' 
end 
+0

결석은 생성 된 비계이고, 직원 유형은 직원이라고하는 다른 비계에 대한 속성이며 결근과 직원이 함께 연결되어 있으며 직원은 내가 사용하고있는 특정 직원 유형에 대해 렌더링하려는보기입니다. : staffs and map.resources : 내 routes.rb의 부재 특정보기를 가리 키도록 새 경로를 추가하는 방법은 무엇입니까? – arcanine

+0

알맞은 방법으로 시도해 보겠습니다. <없음 = link_to '부재', : 컨트롤러 => '부재', : 조치 => '표시', : 유형 => '작업자'%> 사용 방법 컨트롤러 측에서는 유형 작업자 속성을 감지하여이를 사용하여 사용자를 올바른보기로 보낼 수 있습니까? – arcanine

+0

Rails가 설정 한 params 변수를 살펴보면 요청에 대한 정보가 임베드됩니다. – Elmatou

관련 문제