嗨,我想要一些关于如何在木偶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的递归打印,而不是每个数组的打印,然后移动到下一个数组元素。
对于如何完成正确的输出会有一些指导吗?
由于 丹
答案 0 :(得分: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
....
答案 1 :(得分: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"} %>
答案 2 :(得分:0)
这有点冒险,因为它假设您完全确定阵列排队,但是:
...&lt;%servername.each_with_index do | name,i | - %GT;
.....&lt;%=名称%&gt; &lt;%= ipa [i]%&gt; &lt;%= enviro [i]%&gt;
...&lt;%end%&gt;
(请忽略......否则我无法正确显示模板代码!)