这里我要求在application.html.erb以外的部分使用yield,当我在partial中尝试这个时它会显示空白值,如果我在application.html.erb中尝试yield,它就会显示价值。
application.html.erb
body>
<div id="main-container">
<%= content_for?(:page_header) ? yield(:page_header) : (render :partial => "/shared/home_header") %>
<div id="middle-container">
<%= yield %>
</div>
<div id="bottom-container">
<%= render "/shared/bottom_partial" %>
</div>
index.html.erb
<% content_for :page_header do %>
<%= render :partial => "/shared/employer_header" %>
<% end %>
<% content_for :page_name do %>
<p>My Account</p>
<% end %>
<div>
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
</div>
/shared/_employer_header.html.erb
<div class="heading" >
<%= yield(:page_name) %>
</div>
当我在上面尝试时,我在yield中获得空白值:如果我在application.html.erb中尝试yield:页面名称,则在employee头中获取page_name我得到了值。任何人都可以帮我解决这个问题.Thank'U”。
答案 0 :(得分:2)
交换两个content_fors的顺序,以便在呈现部分之前定义:page_name。
index.html.erb
<% content_for :page_name do %>
<p>My Account</p>
<% end %>
<% content_for :page_header do %>
<%= render :partial => "/shared/employer_header" %>
<% end %>