2015-04-24 116 views
0

我想顯示2維數組。使用下面的代碼。但是對於每個數組的第一個下標,我必須編寫一個循環。我可以使用外循環而不是多循環嗎?紅寶石顯示2維數組

<% tempTickets = subject['permailaddr-addrline1'] %> 
    <% cnt = tempTickets.length %> 
    <% tempTickets.each_with_index do |ticket, index| %> 
<div> 
<tr> 
    <td><li class="entity_info"><div><span class="label"><%= subject['memhead-mem-recno'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-addresstype'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-addrline1'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-state'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-suburb'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-postcode'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['permailaddr-countrycode'][index] %></span></div></li></td> 
</tr> 
</div> 
    <% end %> 
    <% tempTickets = subject['perresiaddr-addrline1'] %> 
    <% cnt = tempTickets.length %> 
    <% tempTickets.each_with_index do |ticket, index| %> 
<div> 
<tr> 
    <td><li class="entity_info"><div><span class="label"><%= subject['memhead-mem-recno'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-addresstype'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-addrline1'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-state'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-suburb'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-postcode'][index] %></span></div></li></td> 
    <td><li class="entity_info"><div><span class="label"><%= subject['perresiaddr-countrycode'][index] %></span></div></li></td> 
</tr> 
</div> 
    <% end %> 

回答

0

嘗試像,

2.times do |i| 
    ... 
    <%= subject['#{ i==0 ? "permailaddr" : "perresiaddr"}-addresstype'][index] %> 
    ... 
end 
0

這樣的事情應該工作。

<% ['permailaddr', 'perresiaddr'].each do |prefix| %> 
    <% tempTickets.each_with_index do |ticket, index| %> 
    <div> 
    <tr> 
     <td><li class="entity_info"><div><span class="label"><%= subject['memhead-mem-recno'][index] %></span></div></li></td> 
     <% ['addresstype', 'addrline1', 'state', 'suburb', 'postcode', 'countrycode'].each do |field_name| %> 
     <td><li class="entity_info"><div><span class="label"><%= subject["#{prefix}-#{field_name}"][index] %></span></div></li></td> 
     <% end %> 
    </tr> 
    </div> 
    <% end %> 
<% end %> 

注意,我還拉中的字段名稱 - ['addresstype', 'addrline1', 'state', 'suburb', 'postcode', 'countrycode'] - 出到一個數組,環繞在他們,以節省一些重複的HTML - 但是如果你不希望它是不是必要的。

+0

謝謝,但似乎沒有工作 –

+0

好的,我還沒有測試過。基本概念應該可行 - 您可能需要修改語法或其他內容。 –

1
ticketLists = [ subject['permailaddr-addrline1'], subject['perresiaddr-addrline1'] ] 

ticketLists.each do |tempTickets|: 

然後你包含你想要爲每個tempTickets數組所做的代碼。

+0

循環數很好,但循環內的值不能正確顯示。任何方式來獲取值? –