嗨,我想就如何在傀儡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 -%>
但我得到的是多个recursion打印,而不是每个数组打印,然后移动到下一个数组元素。
我正在考虑一个for循环,但不确定如何获得数组长度作为for循环的参数,将不胜感激一些指导如何完成正确的输出?
我试图做这样的事情,但它傀儡运行错误失败?
<% for id in servername.length %> <%= servername[id] %> <%= ipa[id] %> <%= enviro[id] %> <% end -%>
谢谢丹
您需要使用该数据结构的任何特定原因? 这将很快变得不可读,并且通过不小心地添加或从其中一个数组中删除一个元素而破坏事物将是非常容易的。 那么这样的事情呢?
$servers = [ { name => 'felix', ip => '192.168.43.5', env => 'prod', }, { name => 'washington', ip => '192.168.43.11', env => 'uat', }, ]
那么在erb中工作就简单多了:
<% servers.each do |server| -%> <%= server['name'] %> <%= server['ip'] %> <%= server['env'] %> <% end -%>
但是,如果你坚持使用当前的数据结构,那么应该这样做。
<% (1..servername.length).each do |i| -%>