1

有没有办法做一些与此等价的事情:

<%= render partial: 'shared/outer'  do %>
    <%= render partial: 'shared/inner' %>
<% end %>

导致

<div class="outer">
    <div class="inner">
    </div>
</div>

显然,需要一种标记“shared/outer.html.erb”的方法来指示传入的部分应该在哪里呈现:

<div class="outer">
     <% render Here %>
</div>

在我的具体情况下,我有一个通用页眉,由页眉和子页眉组成,在所有页面之间共享,但希望将特定于页面的标记传递给该页眉的选项,以在标题和副标题下方呈现。

4

1 回答 1

2

我会使用content_for

<% content_for :subheader do %>
    <%= render partial: 'shared/inner'  do %>
<% end %>

<%= render partial: 'shared/outer' %>

然后在 shared/outer 中:

<div class="outer">
  <%= yield(:subheader) %>
</div>

您可以将任何您想要的内容放入content_for块中,并根据需要多次使用它,只需更改键名(此处subheader

于 2012-10-25T11:09:08.953 回答