2010-04-12 3 views
4

보기에서 현재 레이아웃의 이름을 어떻게 인쇄 할 수 있습니까?레일스 레이아웃 이름 내부보기

puts controller.current_layout 

들으

+0

[Rails3에서 현재 레이아웃 이름 가져 오기] 중복 가능 (http://stackoverflow.com/questions/3326579/rails3-get-current-layout-name-inside-view) –

답변

4

<%= controller.active_layout %> 당신에게 레이아웃 파일 이름을 가져옵니다. 따라서 layout 'application'layouts/application.html.erb

레일 2.1.0 이상에서으로 반환됩니다.

+0

ow ... 레이아웃 ... 알았어. – xpepermint

+0

이 "레이아웃 '위젯과 같은 동작에 대한 레이아웃을 설정하려는 경우 문제가 발생합니다 : : => [: account, :]]". 이 경우 controller.active_layout은 항상 "위젯"을 반환합니다. 고치다? – xpepermint

+2

Rails 3에서 작동하지 않습니다. – Zabba

5

이 나를 위해 작동합니다 : UPDATE

response.layout : 는 사실 response.layout이 rails3에서 작동하지 않습니다 + 때문에 나는 보통 각 레이아웃 안에 @layout_name 변수를 정의합니다. 이 레일 3.0.7와 함께 작동 application.html.haml

- @layout_name = 'application' 
!!! Strict 
%html 
... 
+4

Rails 3에서는 작동하지 않습니다.'# layout'은 이제'ActionDispatch :: Response' 내부의 개인 메소드입니다. – cpjolicoeur

+0

그것이 베타 버전에서 작동하지 않는다면. – xpepermint

9

예 :

controller.send :_layout 

물론, 그것은 개인 방법, 그래서 자신의 위험에 사용합니다.