从部分内容向布局添加内容

Dan*_*iel 8 layout ruby-on-rails

假设我有一个应用程序布局,并在他们的产量为:head内容如下:

<head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <title></title>
    <%= stylesheet_link_tag 'scaffold' %>
    <%= yield(:head) %>
</head>
Run Code Online (Sandbox Code Playgroud)

假设在相同的应用程序布局中,我调用partial来呈现主菜单.

<body>

    <p style="color: green"><%= flash[:notice] %></p>

    <!-- Main Menu -->
    <%= render :partial => 'menu/menu_main' %>
</body>
Run Code Online (Sandbox Code Playgroud)

有没有办法,从我的_menu_main.erb部分内部添加内容到我的应用程序布局的head部分(比如添加一些css)?

小智 17

您必须使用content_for标记.

<% content_for :head do -%>
  *your code here*
<% end -%>
Run Code Online (Sandbox Code Playgroud)

所以,你放在里面的代码将在你的html文件的头部.

这个railscasts剧集更详细地解释了它:http://railscasts.com/episodes/8-layouts-and-content-for


Cyb*_*e シ 7

这是答案/sf/answers/715820731/

在你的application.html.erb:

<head>
  <% if content_for? :for_head %>
    <%= yield :for_head %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

在您的"特定"视图中:

<% content_for :for_head do %>
  Something-to-put-in-head
<% end %>
Run Code Online (Sandbox Code Playgroud)

:for_head未预定义:命名取决于您自己.它可能是任何东西.