2011-09-23 88 views
6

出於性能原因,我在<head>中加載我的樣式表和js文件。Rails content_for覆蓋而不是附加

我的網站有多個組件,每個模板都希望自己在<% yield(:head)之內的額外頭文件。

我測試了<% content_for :head do %> ..但後來我意識到它實際覆蓋而不是追加到特定的部分。

你們用什麼?

+0

看看http://stackoverflow.com/questions/7512486/ruby-on-rails-yielding-specific-views-in-a-specific-places-in-the-layout – datalost

+0

@Froyo那不是什麼我在問。除非我寫出多個<%的收益,但我真的想這樣做 – disappearedng

回答

8

content_for默認附加。從文檔,如果你這樣做......

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

<%# Add some other content, or use a different template: %> 

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

如果您使用...

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

它將輸出...

<ul> 
    <li><a href="/">Home</a></li> 
    <li><a href="/login">Login</a></li> 
</ul> 

剛剛測試這對本地一個軌道3.1.0的應用程序,以確保這仍然是這種情況,並且它很好。

+0

這裏是一個[鏈接](https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/capture_helper.rb# L139)到確認LLoyd版本的來源。 – asymmetric