另一个模板变量中的 Puppet 模板变量

Puppet template variable inside another template variable

如何在 template.erb 文件中调用我的清单中的变量?

这是我尝试做的事情:

<%= food[<%= menu %>] %>

如何让它工作?

您只需按原样使用变量:

<%= food[menu] %>

您已经在 ERB 扩展中 "Ruby code space",因此您可以像往常一样使用 Ruby 代码。

参考Puppet 4.5 Embedded Ruby (ERB) template syntax section on Accessing Puppet Variables,变量访问有2种形式:

  • @变量语法
  • 范围['variable']语法

从问题中的示例来看,没有足够的信息来准确确定 food 变量的来源。这个问题假定它是处理数组或散列清单变量的结果。如果 food 是清单变量本身,它应该以 @ 开头,例如:

<%= @food[menu] %>

如果清单变量是 foods,并且 food 变量是可枚举的元素(数组或散列),它将被这样使用:

<%= @foods.each do |food| %>
  <%= @food[menu] %>
<% end %>

坚持使用已记录的访问清单变量的方法,您可以在模板中使用它,就像在传统 Ruby 代码中一样。