我有以下表導軌 - 如何遍歷陣列中的散列來顯示HTML表格數據(數組的值在一個表格單元格去爲每個陣列)
<table>
<tr>
<% @table_header.each do |key, value| %>
<th> <%= value %></th>
<% end %>
<tr>
<% @item_id.each do |item_id| %>
<tr>
<% @table_content.each do |key, content| %>
<!-- line below is the main focus -->
<td> <%= CategoryItemValue.find_by(key: content, category_item_id: item_id).try(:value) %></td>
<% end %>
<tr>
<% end %>
</table >
該表顯示內容來自DB。你可以忽略頭,它工作正常,並形成一個哈希。我的問題是表格數據。
items
具有不同的values
組,並且給每組值賦予唯一的密鑰,例如,關鍵'顏色'將抓住該項目的顏色值。這種設置能正常工作正常哈希像下面
normal_hash = {"key1"=>"color", "key2"=>"speed", "key3"=>"weight", "key4"=>"height"}
一個有了,如果你有normal_hash
更換@table_content
上面的表格它會正常工作,並顯示每個項目,顏色,速度等。
但現在我想有這樣的散列
new_hash = {"key1"=>["color", "age"], "key2"=>"speed", "key3"=>["weight", "brand"], "key4"=>"height"}
因此,我可以在一個表格單元而不是一個顯示2個值。我不知道如何循環遍歷散列中的數組作爲值的數組,同時保持兩個值在一個表格單元格中。
你可以看到我目前如何做到這一點,通過調用數據庫.find_by
,併爲key:
分配散列值,然後爲該表格單元格獲取正確的項目值。如果散列值是一個數組,那麼我需要它再次爲該行運行此行td
。所以一個單元格可以顯示一個項目的多個值。如何才能做到這一點?
希望是有道理的。如果其更容易我可以具有所有的散列值是數組(但大多數將具有陣列中的一個值)
更新
基本上形式以上通過正常散列把一個值在每個表格單元循環(I作爲正常散列的示例,作爲normal_hash
)。這個循環是從這些線路進行(與normal_hash
取代@table_content
。
<% @table_content.each do |key, content| %>
<!-- line below is the main focus -->
<td> <%= CategoryItemValue.find_by(key: content, category_item_id: item_id).try(:value) %></td>
<% end %>
我就需要遍歷像new_hash
(而不是像normal_hash
有數組作爲哈希值,哈希散列。因此,它可以有不止表中的單元格一個值
我發現很難跟蹤你想要做什麼以及你的要求。我認爲你應該重新格式化你的問題,使其更清楚 – MilesStanfield