我正在尝试使用存储所有配置变量的部分布局文件。但是,当我使用render 'layouts/config'
application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:name), yield(:title)) %></title>
#:name here is empty
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= render "layouts/config" %>
<%= yield %>
</body>
</html>
_config.html.erb:
<% provide(:name, "Grab") %>
答案 0 :(得分:1)
要包括部分使用&lt;%= render:partial =&gt;“layouts / config”%&gt;
我建议如果您想要将所有配置变量放在原位,那么您应该在config目录中创建一个config.yml文件并在那里声明所有配置变量。在那里声明的所有配置变量都将在整个应用程序中可用。
答案 1 :(得分:0)
如果您将render "layouts/config"
放在title
标记之前,它将会有效。但provide
可能没有按照您的想法或想要做的事情。
按顺序处理布局,因此在您尝试调用:name
之前,您的示例:title
和full_title
尚未设置。
Yehuda Katz博客上的这篇文章将有助于:Automatic Flushing