2014-11-23 184 views
3

我有一個非常簡單的要求 - 我有一個包含標題和正文的佈局。它是頁面的子佈局,而不是頁面本身。呈現多個塊的部分/佈局

此佈局在多個頁面中重複使用,並且其周圍的結構可能會發生變化。所以我希望能夠將標題的內容和正文的內容從包含它的結構中分離出來。

我第一次嘗試是使用渲染部分作爲用來命名收益率呈現一個標題和正文佈局:

<header class="Resource-header"> 
    <%= yield :resource_header %> 
</header> 
<div class="Resource-body"> 
    <%= yield :resource_body %> 
</div> 

然後從我的模板呈現這樣的:

<%= render layout: 'admin/resource' do %> 

    <% content_for :resource_header do %> 
    <% end %> 

    <% content_for :resource_body do %> 
    <% end %> 

<% end %> 

但是,這沒有任何結果。

我開始與事物的順序播放,並發現,如果content_for塊調用之前聲明的部分,這種做法沒有問題:

<% content_for :resource_header do %> 
<% end %> 

<% content_for :resource_body do %> 
<% end %> 

<%= render layout: 'admin/resource' do %><% end %> 

然而,這只是感覺難以置信哈克。看起來content_for在全局範圍內,並且content_for塊與部分呈現之間沒有關聯。

那麼我爲什麼要實現這個目標?

回答