レンダリングしようとしているこのパーシャルがあるとしましょう
#layouts/_subheader.html.erb
<div class="subheader">
<%= yield %>
<%= yield :filters %>
</div>
このパーシャルをこのようなビューで使用すると
<%= render 'layouts/sub_header' do %>
<h2> Content For Yield </h2>
<% content_for :filters do %>
<h2> Content for Filters </h2>
<% end %>
<% end %>
HTML出力を次のように取得しています
<div class="subheader">
<h2> Content For Yield </h2>
<h2> Content for Filters </h2>
</div>
yield
これは期待どおりに機能しますが、部分的にタグの順序を変更すると問題が発生します
上記の代わりに、パーシャルを次のように書き換えると
#layouts/_subheader.html.erb
<div class="subheader">
<%= yield :filters %>
<%= yield %>
</div>
私は次のように出力されています
<div class="subheader">
<h2> Content For Yield </h2>
</div>
はcontent_for :filters
レンダリングされていません。
私はここで何を間違っていますか?これは正しい動作ですか、それとも何か間違っていますか?
yield :filters
のコンテンツをプレーンの前に表示する必要がある場合はどうすればよいですかyield
編集:-
私が試してみました
#layouts/_subheader.html.erb
<div class="subheader">
<%= content_for :filters %>
<%= yield %>
</div>
しかし、うまく機能していないようです。