使用部分布局提供

时间:2012-10-11 05:58:37

标签: ruby-on-rails ruby ruby-on-rails-3.2

我正在尝试使用存储所有配置变量的部分布局文件。但是,当我使用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") %>

2 个答案:

答案 0 :(得分:1)

要包括部分使用&lt;%= render:partial =&gt;“layouts / config”%&gt;

我建议如果您想要将所有配置变量放在原位,那么您应该在config目录中创建一个config.yml文件并在那里声明所有配置变量。在那里声明的所有配置变量都将在整个应用程序中可用。

答案 1 :(得分:0)

如果您将render "layouts/config"放在title标记之前,它将会有效。但provide可能没有按照您的想法或想要做的事情。

按顺序处理布局,因此在您尝试调用:name之前,您的示例:titlefull_title尚未设置。

Yehuda Katz博客上的这篇文章将有助于:Automatic Flushing