2016-05-15 44 views
0

我試圖在一個表的代碼塊中執行兩條.each do語句。我從一個數據庫表中提取問題,從另一個數據庫中提取答案,最後,我現在試圖從第三個表中提出問題的評論。這是我所擁有的一部分。它可以很好地與其中一個或另一個語句一起工作,但我需要能夠拉出所有三個表格並且能夠遍歷每個數據庫並使其填充表格中的信息量。在ruby中的一個塊中執行兩條each語句

<table id="table1" cellspacing="0" class="mytable" > 

<% dataQ.each do |dataQ| %> 
    <th><strong> <%=dataQ[1]%> </strong></th>  
<%end%> 

<% data.each do |data|%> 
    <% dataC.each do |dataC| %> 

    <tr> 
     <td><%=data[0]%></td> <td><%=data[1]%></td><td><%=data[2]%></td><td><%=data[3]%></td><td><%=data[4]%></td> 
     <td><%=data[5]%><div class="accordion">Comment</div><div class="panel"><%=dataC[0]%></div></td> 
     <td><%=data[6]%><div class="accordion">Comment</div><div class="panel"><%=dataC[1]%></div></td> 
     <td><%=data[7]%><div class="accordion">Comment</div><div class="panel"><%=dataC[2]%></div></td> 
     <td><%=data[8]%><div class="accordion">Comment</div><div class="panel"><%=dataC[3]%></div></td> 
    </tr> 

    <% end %> 
<% end %> 
</table> 

有的西納特拉

get '/display' do 

    dataQ = database.execute("select * from Questions"); 
    data = database.execute("select * from results"); 
    dataC = database.execute("select * from Comments")   

    erb :display, :locals => {:data => data, :dataQ => dataQ, :dataC => dataC} 

end 
+0

如何有關問題/評論結果?什麼是用於關聯數據庫的外鍵? –

+0

所以你想要一個循環並迭代兩個數組? –

+0

@PetrGazarov是的, –

回答

1

如果我理解正確的 - 你datadataC陣列是嵌套的,所以它們必須是相同的長度,你可以試試這個:

<% 0.upto(data.length - 1) do |index| %> 
    <tr> 
    <td><%=data[index][0]%></td> 
    <td><%=data[index][1]%></td> 
    <td><%=data[index][2]%></td> 
    <td><%=data[index][3]%></td> 
    <td><%=data[index][4]%></td> 
    <td><%=data[index][5]%><div class="accordion">Comment</div><div class="panel"><%=dataC[index][0]%></div></td> 
    <td><%=data[index][6]%><div class="accordion">Comment</div><div class="panel"><%=dataC[index][1]%></div></td> 
    <td><%=data[index][7]%><div class="accordion">Comment</div><div class="panel"><%=dataC[index][2]%></div></td> 
    <td><%=data[index][8]%><div class="accordion">Comment</div><div class="panel"><%=dataC[index][3]%></div></td> 
    </tr> 
<% end %> 
+0

我能夠使用我找到一個zip方法後,搜索一個循環,並迭代兩個數組不知道爲什麼我沒有這樣措辭,但這非常謝謝你,生病嘗試你的如果它工作不正常,至少應該給予滿意的答覆 –

0

我結束了上述:)所以使用的是.zip方法尋找一個更好的短語感謝評論後想出來的像一個魅力的工作馬上

<% dataQ.each do |dataQ| %> 
    <th><strong> <%=dataQ[1]%> </strong></th> 


<%end%> 

<% data.zip(dataC).each do |data,dataC|%> 

<tr> 
    <td><%=data[0]%></td> <td><%=data[1]%></td><td><%=data[2]%></td><td><%=data[3]%></td><td><%=data[4]%></td> 
    <td><%=data[5]%><div class="accordion">Comment</div><div class="panel"><%=dataC[0]%></div></td> 
    <td><%=data[6]%><div class="accordion">Comment</div><div class="panel"><%=dataC[1]%></div></td> 
    <td><%=data[7]%><div class="accordion">Comment</div><div class="panel"><%=dataC[2]%></div></td> 
    <td><%=data[8]%><div class="accordion">Comment</div><div class="panel"><%=dataC[3]%></div></td> 
</tr> 

<%end%> 
</table> 
相關問題