2011-05-10 70 views
0

我在關注本教程http://guides.rubyonrails.org/layouts_and_rendering.html,並嘗試將頭文件div與其餘HTML模板分開。無法讓Ruby on Rails屈服於UI層工作

我從我的應用程序/視圖/家庭/ index.html.erb文件中取出一個div與

<%= yield :head %> 

然後替換它,我做了一個叫head.html.erb文件在/ app/views/layouts目錄並將該div放在那裏。然後我把這個代碼圍繞DIV:

<% content_for :head do %> 
<% end %> 

但它不起作用,頭div不顯示。我哪裏做錯了?我認爲有一個路徑和目錄不匹配,但我不確定如何匹配它們。

謝謝!在您的佈局文件

<%= yield :head %> 

如果您head佈局爲您的特定行動content_for :head沒有佈局行不通

回答

3

您的佈局是你把:

+0

我切換了它,現在在我的index.html.erb中有這個「<%= yield:head%>」,但它沒有渲染div。它只是知道要尋找head.html.erb? – GeekedOut

+0

不,'yield'應該在你的'app/views/layouts/application.html.erb'文件中,默認情況下所有其他視圖都使用這個文件。然後在你的模板中(比如你的'index.html.erb'文件)放置'content_for'塊。 –

+0

也許我誤解了application.html.rb文件的用途。只是爲了跟蹤我可以在我的模板中導入可能的div和css/js文件嗎?和模板有代碼? – GeekedOut

1

你應該把這個yield調用,並且每個視圖的模板都是您放置content_for塊的位置。您可能需要在應用程序的主佈局文件中調用yield

所以在app/views/layouts/application.html.erb把這個地方你希望它是:

<div id="my_header_div"> 
    <%= yield :head %> 
</div> 

然後在每個視圖,你可以這樣做:

<% content_for :head do %> 
    <h1>My Header!</h1> 
<% end %> 

它會在你的佈局中插入DIV中文件。

相關問題