从部分视图向布局中添加内容

10

假设我有一个应用程序布局,在其中使用以下代码为:head内容进行占位:

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

假设在同一个应用程序布局中,我调用一个部分来渲染主菜单。

<body>

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

    <!-- Main Menu -->
    <%= render :partial => 'menu/menu_main' %>
</body>

从我的_menu_main.erb局部文件中,有没有办法向我的应用程序布局的:head部分添加内容(比如说添加一些CSS)?

2个回答

19

8

这里是答案 https://dev59.com/22kv5IYBdhLWcg3w91dF#10226010

在你的application.html.erb文件中:

<head>
  <% if content_for? :for_head %>
    <%= yield :for_head %>
  <% end %>

在您的“特定”视图中:
<% content_for :for_head do %>
  Something-to-put-in-head
<% end %>

:for_head没有预定义:你可以自己命名它。它可以是任何名称。


只需简单地使用 <%= yield :for_head %>,无需使用 if 语句。 - Corey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接