首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有在模板中定义了变量时,Puppet 3才会循环执行

只有在模板中定义了变量时,Puppet 3才会循环执行
EN

Stack Overflow用户
提问于 2012-11-01 11:16:10
回答 2查看 1.9K关注 0票数 3

只有在定义了index的情况下,我才尝试创建一个循环。但是看起来erb不能处理if子句中的循环。

代码语言:javascript
复制
<% if(@index) %>
index <% index_files.each do |i| %> <%= i %> <% end %>;
<% end %>

预期结果为:index index.html index.php""

我收到语法错误:

我的平面方法如预期的那样失败了:

代码语言:javascript
复制
<% if(@index_files) %> try_files <% end %>  <% index_files.each do |i| %> <%= i %> <% end %>

我将index_files定义为undef,=>打破了each循环,我定义了一个空数组=>,因为定义了一个空数组,所以它不起作用。

也许我可以检查一下index_files的长度?或者我需要一种完全不同的方法来解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 06:40:42

我正在做同样的事情,它对我也有效,也适用于nginx ;)。

例如:<% if @proxy_ignore_headers %> proxy_ignore_headers<% proxy_ignore_headers.each do |i| -%> <%= i %><% end -%>;

这就像一个咒语,唯一的区别就是对if条件使用(),但我敢打赌puppet support ()。这很奇怪,也许你按了一个错误的组合,生成了一个看不见的字符,但它扰乱了你的代码,试着从头开始写,以防万一。

You can see the full template here

祝好运

票数 1
EN

Stack Overflow用户

发布于 2012-11-01 12:15:25

乍一看,你只需要改变

代码语言:javascript
复制
index_files.each

代码语言:javascript
复制
@index_files.each
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13170457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档