TL; DR:ページで同じレイアウトを複数回使用するにはどうすればよいですか?繰り返しレイアウトでパーシャルをレンダリングしようとするすべての試みは、最初にレイアウトが使用される要素に入ります。
クイック情報:
使用する
Rails 2.3.14
Ruby 1.8.7
私のパーシャルはcontent_forを使用しています。これは、レイアウトに非常に便利です。
基本的に、私のレイアウトは次のようになります。
<div class="header">
<%= yield :modal_header %>
</div>
<div class="body">
<%= yield :modal_body or yield %>
</div>
一般的に、これは私がモーダルレイアウトを使用する方法です:
<% content_for :modal_header do %>
header text / elements
<% end %>
<% content_for :modal_body do %>
body info / settings for object or warning message, etc
<% end %>
これが私のページでモーダルをレンダリングする方法です:
<%= render :partial => "section_options", :layout => "modal" %>
そしてそれは本当にうまくいきます
しかし
同じページで、別のモーダルをレンダリングしようとすると、次のようになります。
<%= render :partial => "section_content_options", :layout => "modal" %>
これは私のページの上部にあるモーダルに起こることです(HTMLドキュメントで最初に発生します)
<div class="header">
-- header from second partial --
-- header from first partial --
</div>
<div class="body">
-- body from second partial --
-- body from first partial --
</div>
次に、ページの後半で、2番目のパーシャルのコンテンツが次のようになっているはずです。すべてが正しくレンダリングされます...この例のために:
<div class="header">
section content options
</div>
<div class="body">
section contents options ... options
lil confirm / cancel buttons
</div>
これを修正する方法はありますか?この振る舞いは、javascriptバインディングも実際に混乱させます。それで。うん。
レール2.3.14のレイアウトにバグはありますか?この問題を解決するには、Rails 3にアップグレードする必要がありますか?