Базовый синтаксис для использования каждого в ruby выглядит примерно так:
array.each do |item_from_array| BLOCK
, поэтому, если у вас есть только один массив, вы можете просто сделать что-то вроде этого: (Я бы использовал другое имя внутривертикальные черты для наглядности)
<% device.each do |dev| %>
auto <%= dev %> inet static
<% end %>
Однако это будет сначала выполнять перебор всех ваших устройств, прежде чем перейти к массиву ipaddr.Я предполагаю, что вы хотите, чтобы они были по очереди автоматически, по адресу, по маске сети и т. Д. В этом случае вам лучше использовать более «традиционный» индекс и проходить по N раз, например:
<% for idx in (0..1) %>
auto <%= device[idx] %> inet static
address <%= address[idx] %>
netmask <%= netmask[idx] %>
broadcast <%= broadcast[idx] %>
<% end %>
Конечно, вам нужно подумать о том, какой у вас максимальный размер массива и что делать, если массив содержит меньше записей, чем остальные.Вы можете найти максимальный размер всех массивов, выполнив что-то вроде этого: [device,address,netmask,broadcast].map{|a| a.length}.max
, и вы можете пропустить определенный массив следующим образом: <% if idx < address.length %> address <%= address[idx] %><% end %>