2010-07-16 71 views
4

我想給我的第一個Rails應用程序添加一個菜單。沒什麼太複雜的。 我已經搞清楚了,我可能應該從application.html.erb引用它,但之後我卡住了。我該如何去添加一個簡單的菜單到Rails應用程序? (如何使用yield:菜單)

這裏就是我這麼遠(這不是很多)

<%= render :partial => "menu" %> 

如果我在application.html.erb渲染部分呼叫「菜單」,你在哪裏我把菜單文件,我該怎麼稱呼它?它是否需要進入視圖的控制器?

我可以從我所在的任何佈局子文件夾中調用此部分嗎?

第二部分。如果我想根據我所處的視圖顯示不同的內容,我該怎麼做?

<body> 
    <p>[<%= yield :menu %>]</p> 
    <%= yield %> 
</body> 
</html> 

我只是在學習Rails,所以對於這些愚蠢的問題感到抱歉。另外,我不僅對解決方案感興趣,而且對最佳實踐也有興趣。

+0

bjg有正確的答案,如果你想找到更多的例子尋找yield:邊欄實現。 – Lolindrath 2010-07-16 12:16:38

+0

啊 - 我可以看到什麼產量:側邊欄現在。我想我想知道如何渲染部分。我會更新這個問題。 – seanyboy 2010-07-16 12:45:17

+0

向我的application.html.erb文件添加了<%= render:partial =>「menu」%>,並將_menu.erb添加到「views \ layouts」,但它正在查看每個控制器的視圖文件夾中的部分內容。如何使它尋找父母的部分? – seanyboy 2010-07-16 12:54:24

回答

5

基本而言,您正在尋找content_for幫手。你把它放在你的視圖裏面,然後在部分或佈局中填充命名塊,例如:menu。如果您願意,您可以選擇使用部分來實際定義content_for區域的內容。

在視圖中:

<% content_for :menu do %> 
    <ul> 
    <li> ... </li> 
    <li> ... </li> 
    </ul> 
<% end %> 

或爲:

<% content_for :menu do %> 
    <%= render :partial => "some_menu_content" %> 
<% end %> 

在佈局或部分:

<div id="menu"> 
    <%= yield :menu%> 
</div> 

關注此screencast從Railscasts系列獲得更多信息。這是舊的,但仍然適用

相關問題