2013-10-15 57 views
1

我有一個頁面,我需要呈現不同時間的HTML代碼塊,總是相同的結構,但內容不同。 我想在佈局中提取結構並製作不同的部分,並使用相同的佈局渲染它們。渲染局部佈局通過兩個塊

主頁

<body> 
    <%= render partial: 'a', :layout => "layouts/card"%> 
    <%= render partial: 'b', :layout => "layouts/card"%> 
    <%= render partial: 'c', :layout => "layouts/card"%> 
</body> 

佈局 '佈局/卡' 是這樣的:

<div class="slide red"> 
<div class="row full-width"> 
    <div class="large-3 columns"> 
     <%= yield :content_a %> 
    </div> 
</div> 
<div class="large-9 columns"> 
    <%= yield :content_b%> 
</div> 
</div> 

局部 'a' 是這樣的:

<% content_for :content_a do %> 
<div> 
    <div> 
    Hello A 
    </div> 
    Hello A2 
</div> 
<%end%> 
<% content_for :content_b do %> 
<div> 
    <div> 
    Hello B 
    </div> 
    Hello B2 
</div> 
<img src="..."/> 
<%end%> 

部分b有不同的內容fo因爲我無法傳遞數千個參數

但是,如果兩個yield filed都不包含任何內容,它並不會真正工作並呈現佈局。 我在做什麼錯?

回答

0

我認爲你的佈局產量聲明是在content_for之前獲得第一個過程。在這種情況下,收益率將被替換爲無。我不確定是否有解決方案。

如果你改變你的邏輯類似下面,因爲你只是想幹涸你的代碼,它實際上不是一個佈局:

_a.html.erb

<div class="slide red"> 
<div class="row full-width"> 
    <div class="large-3 columns"> 
     <%= content_a%> 
    </div> 
</div> 
<div class="large-9 columns"> 
    <%= content_b%> 
</div> 
</div> 

主頁

<body> 
    <%= render partial: 'a', :locals => {:content_a => "Hello A", :content_b => "Hello B"}%> 
    <%= render partial: 'a', :locals => {:content_a => "Hello C", :content_b => "Hello D"}%> 
    <%= render partial: 'a', :locals => {:content_a => "Hello E", :content_b => "Hello F"}%> 
</body> 
+0

問題是代碼是由一段HTML組成的。我編輯的問題更清晰 – coorasse

+0

發現這個帖子,可以幫助你 - > http://stackoverflow.com/questions/13106580/partial-layout-template-rendering-problems – usha

0

試試這個: -

<%= render partial: 'a', :layout => "layouts/card"%> 
+0

我編輯的問題,因爲實際上是這樣的 – coorasse