2013-02-20 91 views
0

美好的一天,Rails:模板文件夾

我嘗試了一些軌道基礎知識。

我想創建一個模板並在我的佈局文件中使用這些模板。

我創建這個文件:意見/模板/ sidebar.html.erb

<% content_for (:sidebar) do %> 

<ul> 
    <li>TEST</li> 
    <li>TEST</li> 
</ul> 
<% end %> 

我的佈局文件:景色/佈局/ test.html.erb

<%= yield :sidebar %> 

看來:模板缺失

出了什麼問題?

+1

當佈局中沒有「yield:sidebar」時,它是否也顯示錯誤消息?它可能找不到該操作的模板。它正在查找的模板的文件路徑是什麼?這是它期望的文件。 – 2013-02-20 18:00:00

+0

啊好吧我的電話是錯誤的:佈局「user_interface_trainerone」。 – ubuseral 2013-02-20 18:22:18

+0

現在顯示,但不顯示側邊欄。 – ubuseral 2013-02-20 18:22:38

回答

1

content_for需要包含在視圖中。你可以把它放到行動的視圖中。或者,(可能你想做什麼),你可以

<%= render :partial => "template/sidebar" %> 

從你的行動的看法。您必須將文件從sidebar.html.erb重命名爲_sidebar.html.erb。

+0

好的,但是在他們解釋的用content_for創建模板的書中,然後你必須在佈局 – ubuseral 2013-02-20 19:27:07

+0

中包含這個<%= yield:sidebar%>,就像這裏指向3.2 http://guides.rubyonrails.org/layouts_and_rendering。 html#understanding-yield – ubuseral 2013-02-20 19:34:42

+0

@ddd您必須調用「yield:sidebar」才能生成與符號:sidebar相關的模板標記。對「content_for:sidebar」的調用將使符號:側邊欄與塊中的標記相關聯。但是,您需要運行「content_for:sidebar」的代碼,這是您從未調用過的方式。您需要將content_for調用放入視圖(也稱爲模板)中,該視圖將被調用以執行操作。它不會在views/template目錄中自動找到它。 – 2013-02-21 15:12:17