我如何将简单的菜单添加到Rails应用程序?(如何使用产量:菜单)

sea*_*boy 4 ruby-on-rails

我想在我的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,对于这些愚蠢的问题感到抱歉.此外,我不仅对解决方案感兴趣,而且对最佳实践的想法感兴趣.

bjg*_*bjg 5

在基本术语中,您正在寻找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系列中的此截屏视频以获取更多信息.它虽旧但仍然适用