사용할 수 이것은 종종 레이아웃에 content_for
을 사용하여 수행됩니다.
# application.html.erb
<div id="menu_div>
<ul>
... etc ...
</ul>
</div>
가 yield
문 내부 내용을 바꾸기 :
# page
<% content_for :group_menu do %>
<ul>
... etc ...
</ul>
<% end %>
:
는
<div id="menu_div>
<%= yield :group_menu %>
</div>
그런 다음 뷰 템플릿에 content_for
블록을 추가의 당신이 application.html.erb
에서 특정 사업부에서 메뉴를 원하는 가정 해 봅시다
각 페이지 템플릿은 content_for
블록에 고유 한 메뉴 코드를 정의 할 수 있습니다. 이것은 블록에서 도우미 메서드를 사용하고 인스턴스 변수를 전달함으로써 더욱 일반화 될 수 있습니다.을 (분명 인위적인 예)
<% content_for :group_menu do %>
<%= show_me_the_menu(@group) %>
<% end %>
와 헬퍼 : @group
가정
편집
컨트롤러에 할당, 당신은 뭔가를 할 수
def show_me_the_menu(group)
content_tag :ul do
group.users.collect do |user|
concat(content_tag(:li, user.some_method))
end
end
end
정말 대단 합니다만, 예를 들어 같은 위치에있는 모든 사이트의 그룹 이름 (예 : application.html.erb에서 최고)이 필요한 경우 어떻게 필요합니까? 헬퍼 메소드는 어떻게 생겼지? noobness 죄송합니다 – malice
내 편집을 참조하십시오. 그게 도움이 되니? – zetetic
예 thx 대단히! – malice