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" %>
并且效果很好
BUT
当我在同一页面上尝试渲染另一个模态时:
<%= 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>
然后在页面中,第二部分的内容应该是: 一切都正确呈现...... 为了这个例子:
<div class="header">
section content options
</div>
<div class="body">
section contents options ... options
lil confirm / cancel buttons
</div>
有没有办法解决这个问题?这种行为也很混乱javascript绑定。所以。烨。
rails 2.3.14中的布局是否有错误?我是否必须升级到rails 3才能摆脱这个问题?
答案 0 :(得分:2)
模式应该使用部分而不是布局来渲染。布局旨在定义整个网站的整体布局,而非特定部分。像模态(通过设计是特定的)的东西应该是通过条件或JavaScript呈现的部分。