1

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>

然后在页面的后面,第二部分的内容应该是:一切都正确呈现......为了这个例子:

<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 才能解决这个问题吗?

4

1 回答 1

2

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

于 2012-07-03T22:49:50.937 回答