読者です 読者をやめる 読者になる 読者になる

カメニッキ

カメとインコと釣りの人です

Railsでレイアウトに複数のコンテンツを埋め込む

レイアウトファイル内で「<%= yield %>」してあげることで、ビューで記載したコンテンツを埋め込む事が出来ます。
しかし、以下のような場合一箇所では足りなくなります。

〜共通〜
独自コンテンツ1(<%= yield %>)
〜共通〜
独自コンテンツ2(<%= yield %>)
〜共通〜
独自コンテンツ3(<%= yield %>)

この場合、どこに埋め込めばいいのか判断がつきません。
そこで、yieldに対しコンテンツ領域名を指定してあげます。

〜共通〜
独自コンテンツ1(<%= yield :hoge1 %>)
〜共通〜
独自コンテンツ2(<%= yield :hoge2 %>)
〜共通〜
独自コンテンツ3(<%= yield :hoge3 %>)

上記のように定義されたレイアウトファイルを使用するビューで以下のように記載します。

<% content_for :hoge1 do %>
#yield :hoge1向けのコンテンツ
〜〜〜〜〜〜〜〜〜〜
<% end %>
<% content_for :hoge2 do %>
#yield :hoge2向けのコンテンツ
〜〜〜〜〜〜〜〜〜〜
<% end %>
<% content_for :hoge3 do %>
#yield :hoge3向けのコンテンツ
〜〜〜〜〜〜〜〜〜〜
<% end %>