1

爲了簡單起見,最好使用泛音,讓我們說我有這樣的事情與標籤

<div class='important_class'> 
    <%= @model.attribute %> 
</div> 

想象important_class DIV竟是申報單的大型層次結構,並有像7個關閉標籤。現在想象我擁有5個完全相同外觀的視圖,除了中心的內容外,我可能有@model1.attributemodel2.attribute等等。在這種情況下使用partials的最佳方式是什麼?

提出的解決方案1 ​​

請2個泛音稱爲_top_part.html.erb_bottom_part.html.erb包含頂部部分和底部部分,然後在不同的視圖中使用它們。和代碼將如下所示

<%= render 'top_part' %> 
    <%= @model.attribute %> 
<%= render 'bottom_part' %> 

提出的解決方案2

在控制器級別,傳遞變量到視圖,以確定呈現哪些部分,它看起來像

<div class='important_class'> 
    <%= render @place+'_partial' %> 
</div> 

我不喜歡解決方案2的原因是因爲@place與partials緊密耦合,並且您可能會從許多不同的控制器渲染相同視圖時出現奇怪的行爲。

對此提出建議?

回答

0

如果你的模型是不同的,你可能只是做

<div class='important_class'> 
    <%= render @model %> 
</div> 

例如,假設你有2種型號CarBus,它會尋找2名的諧音命名爲_car.html.erb_bus.html.erb

我米不知道這是你所問的: - \

+0

這不是我真正要問的。 '<%= @ model.attribute%>'更像是一個例子。它可以是任意複雜的身體代碼。 – vinceh 2012-03-24 06:43:53