2

嗨,我想要一些关于如何在木偶中用 erb 编码的帮助,基本上我有

server::actionhost { 'details':
    servername[ 'felix', 'washington', ],
    ipa [ '192.168.43.5', '192.168.43.11', ],
    enviro [ 'prod', 'uat', ],
}

我现在想将它打印到一个文件中,其中每个数组中的每个元素都在一行中,即我的类中模板文件的输出应该是这样的:

felix 192.168.43.5 prod
washington 192.168.43.11 uat

当我尝试这样做时,我在模板文件中编写了以下代码:

<% servername.each do |name| -%>
<% ipa.each do |ip| -%>
<% enviro.each do |env| -%>
<%= name %> <%= ip %> <%= env %>
<% end -%>
<% end -%>
<% end -%>

但我得到的是网络掩码和 ipa 的递归打印,而不是每个数组的打印,然后移动到下一个数组元素。

希望获得一些有关如何完成正确输出的指导?

谢谢丹

4

3 回答 3

2

试试字典之类的东西怎么样。类似的方法对我有用,希望对您有所帮助。我的问题是,我有不同的变量,每个变量都应该有不同的值或参数。

定义变量如

 $file_threshold = {
          'received' => '10',
          'doneJobs' => '20',
          'recvq'    => '30',
          'sendq'    => '40',
          'doneq'    => '50',
          'docq'     => '60',}

在模板文件中

<%  @file_threshold.each do |key,value| -%>

cmd = check_file.sh <%=  key %>  <%= value%>

<% end -%>

出去:

....
cmd = check_file.sh doneq 50
....
于 2013-08-07T19:13:55.083 回答
1

如果需要,可以在 .erb 中执行 Ruby 代码(以下是 Ruby 代码)。本例中的主要内容是:定义一个多维数组并使用 Ruby 的数组转置方法。

<% details = [servername, ipa, env]; transposed = details.transpose; transposed.each {|x| print x.at(0), " ", x.at(1), " ", x.at(2), "\n"}  %>
于 2013-02-14T01:01:21.433 回答
0

这有点冒险,因为它假设您绝对确定您的阵列排成一行,但是:

...<% servername.each_with_index do |name, i| -%>
.....<%= name %> <%= ipa[i] %> <%= enviro[i] %>
...<% end %>

(请忽略...否则我无法正确显示模板代码!)

于 2013-04-08T22:36:56.323 回答