gpt4 book ai didi

ruby - 通过 erb 模板输出 ruby​​ 数组

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:47 24 4
gpt4 key购买 nike

我正在使用 puppet 为 ruby​​ 程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。

在我之前使用的 bash 脚本中,我只是将它作为一个 puppet 变量

hosts => "host1,host2"

我将其提供给 bash 脚本作为

HOSTS=<%= hosts %>

显然这对 ruby​​ 不太适用——我需要它的格式

hosts = ["host1","host2"]

自从

p hosts

puts my_array.inspect

提供输出

["host1","host2"]

我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:

<% p hosts %>
<% puts hosts.inspect %>

我发现某处他们指出我需要在函数调用前放置“function_”……这似乎不起作用。我已经确定了一个迭代模型:

[<% hosts.each do |host| -%>"<%=host%>",<% end -%>]

这行得通,给了我

["host1","host2",]

但是尾随的逗号感觉很草率。整个事情感觉草率。有人有更好的方法吗?或者我所做的是最好的选择?

最佳答案

我已经通过这种方式解决了 (Puppet v3.0.1):

{
"your_key1": {
"your_key2": [<% puppet_var.join('", "').each do |val| %>"<%= val %>"<% end -%>]
}
}

如果 $puppet_var 是一个类似于 [ "a", "b"] 的数组,输出应该类似于:

{
"your_key1": {
"your_key2": ["a", "b"]
}
}

关于ruby - 通过 erb 模板输出 ruby​​ 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com