我想在First Rails应用程序中添加一个菜单。没有什么太复杂的。 我已经知道我应该从application.html.erb引用它,但之后我就被卡住了。
这是我到目前为止所做的事情(并不多)
<%= render :partial => "menu" %>
如果我在application.html.erb中渲染部分调用“menu”,我在哪里放置菜单文件,我该怎么称呼它?是否需要进入视图的控制器?
我可以从我所在的任何布局子文件夹中调用此部分吗?
第二部分。如果我想根据我所处的视图显示不同的内容 - 我该怎么做?
<body>
<p>[<%= yield :menu %>]</p>
<%= yield %>
</body>
</html>
我只是在学习Rails,对于愚蠢的问题感到抱歉。此外,我不仅对解决方案感兴趣,而且对最佳实践的想法感兴趣。
答案 0 :(得分:5)
在基本术语中,您正在寻找content_for
助手。您将其放在视图中,然后将填充部分或布局中的命名块,例如:menu
。如果您愿意,您可以选择使用partials来实际定义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>
从Railscasts系列中观看此screencast以获取更多信息。它虽旧但仍适用