0

在这里,我需要在 application.html.erb 以外的部分使用 yield ,当我在 partial 尝试这个时,它向我显示空白值,如果我尝试在 application.html.erb 中使用 yield 它显示值。

应用程序.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>

当我像上面那样尝试时,如果我尝试在 application.html.erb 中尝试 yield :page name,我会在 yield :page_name 中得到空白值,我得到了值。谁能帮我解决这个问题。谢谢你'。

4

1 回答 1

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 %>
于 2013-05-20T06:22:15.113 回答