u16suzuの blog

日々学んだことのメモブログです。

layoutの中で複数の yield を使う

viewでcontent_forメソッドを使用すればよい。

multi_layout.html.erb (layout)

<%= yield :extend_menu %>

<%= yield %>

<%= yield 'extend_menu' %>

multi.html.erb (view)
文字列とシンボルは区別される。

<% content_for :extend_menu do %>
  header
<% end %>

<%= tag :hr %>

<div id="main" >
  コンテンツ本体
</div>

<%= tag :hr %>

<% content_for 'extend_menu' do %>
  footer
<% end %>

controller(一部抜粋)

  def multi
    render layout: 'multi_layout'
  end