0

ここで、 application.html.erb 以外のパーシャルで yield を使用する必要があります。パーシャルでこれを試してみると、空白の値が表示され、 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 :page_nameに空白の値が表示されます.application.html.erbでyield :page nameを試してみると、値が得られます.うーん。

4

1 に答える 1

2

パーシャルがレンダリングされる前に :page_name が定義されるように、2 つの content_fors の順序を入れ替えます。

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 に答える