2012-08-17 2 views
0

난 내가 application.html.rb 에레일의 선택된 페이지에 메뉴 헤더 레이아웃을 표시하고 싶습니까?

<body> 
<%=render 'layouts/menus'%> 
<%= yield %> 
<%=render 'layouts/footers'%> 
</body> 

를 사용하고 레이아웃 폴더 에 menu.html.erb 페이지를 만든 내 문제는이 메뉴 및 바닥 글은 모든 페이지을 적용 이다 나는 싫어.

나는이 메뉴 및 바닥 글이없는 일부 페이지를 원하는

어떤 도움을 주시기 바랍니다 ???

답변

4

이이 작업을 수행하는 또 다른 현명한 방법입니다.

당신은 최고 당신의 컨트롤러에 before_filter 둘 수 있었다 : 나는 하나 개의보기에서 사용하는 경우

<body> 
<%=render 'layouts/menus' if @have_sidebar %> 
<%= yield %> 
<%=render 'layouts/footers' if @have_sidebar %> 
</body> 
+0

그레이트 .... 감사 ... –

+0

아니 땀! 행운을 빕니다! – Trip

+0

그게 내가 찾고 있던 .. –

1

응용 프로그램 레이아웃을 사용하는 메뉴/바닥 글없이 해당 페이지를 원하는 경우에, 당신은 할 수 있습니다 : @show_menu 및 @show_footer 다른 곳에서 정의 할 수 있습니다

<body> 
<%=render 'layouts/menus' if @show_menu %> 
<%= yield %> 
<%=render 'layouts/footers' if @show_footer%> 
</body> 

.

또는 응용 프로그램 레이아웃을 사용하지 않으려면, 당신은 예를 들어, 변경할 수 있습니다

render :view, :layout => "another layout" 
render :view, :layout => false # don't use any layout 
+1

내가 다하지만이 작성, 당신의 application.html.erb에서 다음

before_filter :have_sidebar except: [:show, :index] # ^This is an example, but choose whatever views you do not want it to appear in. # Add this to your controller methods. def have_sidebar @have_sidebar = true end 

을 그 컨트롤러 아래의 모든보기 메뉴를 숨 깁니다 ... –

관련 문제