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