2012-04-27 3 views
1

저는 특정 사용자 또는 모바일 장치에 대해 서로 다른 하위 도메인이있는 레일즈 3 응용 프로그램을 만들고 있습니다.런타임시 컨트롤러보기 경로에서 특정보기 경로를 제거 할 수있는 방법이 있습니까?

이 뷰 구조가 모습입니다 같은 :

응용 프로그램/

---- 전망/

-------- 모바일/

--- ----- admin/

간단한 호출로 경로 집합에 새로운보기 경로를 추가 할 수 있습니다.

prepend_view_path(some_path) 

또는

append_view_path(some_path) 

지금, 나는 너무 그들을 제거하고 싶습니다.

컨트롤러 path_set에서 이전에 추가 한 경로를 제거 할 수있는 방법이 있습니까? (예를 들어 delete_at 같은) 내가 RuntimeError에 다음과 같은 얻을 나는 API에서 유용한 방법을 찾지 못했습니다 표준 방법을 사용할 때 배열에 사용하십시오 :

can't modify frozen array 

이미 서로 다른 MIME 유형을 사용 예를 들어 휴대 기기에서 요청합니다. 추가 경로를 제거 할 수 없다면 그리 나쁘지 않습니다. 난 그냥 "기본"보기 경로로 재설정하는 방법을 찾고 있어요.

답변

1

레일즈는 각각 다른 두 게터 및 세터 메소드 - view_paths()view_paths= 메소드를 제공합니다. 'view_paths ='메서드를 사용하면 동적으로 추가 된 뷰 경로를 제거 할 수 있다고 생각합니다.

+0

감사합니다. 분명히보기 경로에서 항목을 삭제할 수있는 다른 방법은 없습니다. – rathrio

0

일반 사용자가 관리 기능을 사용하지 못하도록하려는 것 같습니다. 더 좋은 방법은 'cancan'과 같은 '인증'플러그인을 사용하는 것입니다.

관련 문제