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

时间:2010-07-16 11:41:52

标签: ruby-on-rails

我想在First Rails应用程序中添加一个菜单。没有什么太复杂的。 我已经知道我应该从application.html.erb引用它,但之后我就被卡住了。

这是我到目前为止所做的事情(并不多)

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

如果我在application.html.erb中渲染部分调用“menu”,我在哪里放置菜单文件,我该怎么称呼它?是否需要进入视图的控制器?

我可以从我所在的任何布局子文件夹中调用此部分吗?

第二部分。如果我想根据我所处的视图显示不同的内容 - 我该怎么做?

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

我只是在学习Rails,对于愚蠢的问题感到抱歉。此外,我不仅对解决方案感兴趣,而且对最佳实践的想法感兴趣。

1 个答案:

答案 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以获取更多信息。它虽旧但仍适用