2012-01-15 27 views

回答

2

#provide作品在幾乎相同的方式爲#content_for,保存#provide沒有並置塊。那就是 - 和下面的代碼是從文檔那兒剽竊 - 說你有這些#content_for S,可能在多個模板,但在這個順序定義:

<%Qcontent_for :navigation do %Q< 
    <li><%= link_to 'Home', :action => 'index' %></li> 
<% end %> 

<% content_for :navigation do %> 
    <li><%= link_to 'Login', :action => 'login' %></li> 
<%Qend %> 

現在,以下情形將導致在這兩個導航項目聯合國有序列表,「家庭」第一則「登錄」:

<ul><%= content_for :navigation %></ul> 

#provide不會串連並會呈現一個列表,但一個元素。

+0

完美感。謝謝! – Slick23 2012-01-15 15:40:07

1

提供將直接發送到佈局,而ONCE content_for將允許另外的信息被髮送到產量。

使用提供,如果您知道只發送一次到佈局,請使用content_for,如果您願意或可以動態發送更多信息。

它實際上比這更復雜一點,但上面是縮短的版本。

戴夫