我如何使用content_for来放置内容:yield

use*_*594 0 ruby ruby-on-rails ruby-on-rails-3

我在ruby 1.9.2,rails3.

所以我的网站有一些结构,

我想把菜单放在我的网页中间.

我正在做类似的事情(在application.html.erb文件中)

blahblahblah
<div id="menu">
   <%= yield :menu %>
<div>
blahblhablah
Run Code Online (Sandbox Code Playgroud)

我有一个文件menu.html.erb,它有网站的菜单结构.如果我想使用./layout文件夹中的文件作为该产量的一部分,我该怎么办?菜单?我想知道,如果我必须为每个控制器使用content_for,并且在每个函数中...... Btw,menu.html.erb对于每个控制器都会有所不同,这就是为什么我要让它产生的.

总之,我只是希望在任何地方都包含一个共同的共享menu.html.erb.

Mar*_*ran 5

您可以在视图中执行以下操作:

<% content_for(:menu) do %>
  <%= render :partial => "/layouts/user_menu.html.erb" %> 
<% end %>
Run Code Online (Sandbox Code Playgroud)

您可以尝试将其与controller.controller_name(不确定这适用于Rails3)相结合,并自动为每个控制器加载不同的菜单.