将标记传递到Rails部分

时间:2012-10-25 10:57:35

标签: ruby-on-rails ruby-on-rails-3 templates erb partial

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

<%= 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>

在我的特定情况下,我有一个通用的页面标题,包含一个标题和子标题,在所有页面中共享,但是希望选择将特定于页面的标记传递给标题,并在标题下面呈现字幕。

1 个答案:

答案 0 :(得分: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