3

我正在尝试仅在index定义时才创建循环。但看起来 erb 无法处理 if 子句中的循环。

<% if(@index) %>
index <% index_files.each do |i| %> <%= i %> <% end %>;
<% end %>

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

我得到的语法错误:

我的扁平化方法按预期失败了:

<% if(@index_files) %> try_files <% end %>  <% index_files.each do |i| %> <%= i %> <% end %>

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

也许我可以检查的长度index_files?还是我需要一种完全不同的方法来解决问题?

4

2 回答 2

1

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

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

这就像一个魅力,与你的唯一区别是使用 () 作为 if 条件,但我敢打赌 puppet 支持 ()。这很奇怪,也许你按下了一个错误的组合,生成了一个看不到的字符,但它弄乱了你的代码,尝试从头开始编写以防万一。

你可以在这里看到完整的模板

祝你好运

于 2012-11-01T22:40:41.567 回答
-1

乍一看你只需要改变

index_files.each

@index_files.each
于 2012-11-01T04:15:24.760 回答