2013-04-02 42 views
1

我是RoR的新手,我試圖瞭解視圖和佈局之間的通信是如何工作的。視圖和佈局之間的通信

我發現一些documentation,我得到我需要使用providecontent_for方法,但它並沒有真正解釋它是如何完成的。

另外,爲什麼我需要在我的佈局中使用yield來打印值?

例子: home.html.erb(圖)

<% provide(:title, 'Home') %> 

application.html.erb(佈局)

<title>Great App | <%= yield(:title) %></title> 

回答

0

在您的子視圖,您可以使用這些方法通過傳遞帶有文本內容的塊(對於包含HTML標記的長內容段可以是有用的):

<% content_for :title do %> 
    <h1>The Title</h1> 
<% end %> 

或者你可以簡單地直接傳遞一個字符串#content_view作爲第二個參數:

<% content_for :title, "The Title" %> 

有對ContentHelper模塊中的這些方法的一些更好的文檔。

佈局只是包裝其他視圖,子視圖可以被認爲是傳遞給佈局的「塊」。如果你這樣想,那麼yield關鍵字就像塊一樣調用子視圖。

+0

如果他爲HTML標題標籤提供內容,則不需要爲其添加h1標籤,「<%content_for:title」,標題「%>」就足夠了。 –

+0

謝謝,更新了我的答案 –

相關問題