我正在尝试在我的一个Puppet模块的模板中包含一个子模板。以下是我在基本模板中执行include的方法:
<%
def import(fname)
erb =
File.open(File.dirname(__FILE__) + "/" + fname) { |fp| ERB.new(fp.read) }
erb.run
end
%>
<%= import("subtemplate.erb") %>
如果我使用erb命令行工具渲染它,这可以正常工作。但是,在Puppet运行期间,将默默忽略导入,即基本模板使用空白行渲染,其中渲染的子模板应该是。没有生成错误。
我做错了什么?谢谢!
答案 0 :(得分:7)
函数的参数需要是一个数组(&gt; = puppet-3):
scope.function_foo(["bar"])
http://docs.puppetlabs.com/guides/templating.html#using-functions-within-templates
答案 1 :(得分:5)
怎么样:
<%= scope.function_template("subtemplate.erb") %>