如何在页面上多次使用相同的布局?

时间:2012-07-03 21:10:56

标签: ruby-on-rails ruby layout

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才能摆脱这个问题?

1 个答案:

答案 0 :(得分:2)

模式应该使用部分而不是布局来渲染。布局旨在定义整个网站的整体布局,而非特定部分。像模态(通过设计是特定的)的东西应该是通过条件或JavaScript呈现的部分。