有没有办法做一些与此等效的事情:
<%= 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>
在我的特定情况下,我有一个通用的页面标题,包含一个标题和子标题,在所有页面中共享,但是希望选择将特定于页面的标记传递给标题,并在标题下面呈现字幕。
答案 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
)