こんばんは
content_for便利ですよね。
今回はcontent_forとif文を組み合わせて使ってみます。
layout.html.erb
<div>
<% if content_for?(:title) %>
<h1><%= yield(:title) %></h1>
<% end %>
</div>
index.html.erb
<% provide :title, 'Hello world.' %>
上記の出力結果は以下となります。
<div>
<h1>Hello world.</h1>
</div>
次に、index.html.erbにprovide(:title)を設定しないでコンパイルしてみます。
そうすると
<div>
</div>
上記のような出力結果になります。
他にも、jsやcssをあるページにだけ使いたい時も
上記のようなやりかたで読み込むことができますし、
ページの構成は似ているけど、一部分だけ違うっていう時も
柔軟に対応することができます。