2014-11-24 81 views
0

我目前正在從網站上抓取產品信息,並試圖將其輸出到網頁上的表格中。正確格式化HTML中的數組

我堅持,因爲我能得到的唯一代碼才能正常格式化爲

 
ITEM 
IMAGE 
PRICE 

顯然是錯誤的,並最終複製數據多次。

的部分功能代碼:

<table> 
    <tr> 
     <% @items.each do |title| %> 
     <% @images.each do |image| %> 
     <% @prices.each do |price| %> 
     <br> 
     <td><%= title %></td> 
     <br> 
     <td><%= image %></td> 
     <br> 
     <td><%= price %></td></tr> 
     <br> 
    </table> 
    <% end %> 
    <% end %> 
    <% end %> 

我已經試過格式如下面的代碼,但它趨於下降了三組數據的向下像

TITLE TITLE TITLE IMAGE IMAGE IMAGE PRICE PRICE PRICE. 

以各種非常不正確的方式。

<table> 
    <tr> 
    <td> 
     <% @items.each do |title| %> 
     <%= title %> 
     <% end %> 
    </td> 
    <br> 
    <td> 
     <% @images.each do |image| %> 
     <%= image %> 
     <% end %> 
    <br> 
    <td> 
     <% @prices.each do |price| %> 
     <%= price %> 
     <% end %> 
    </td> 
    <br> 
    </table> 

是任何人都能夠發現我正在做錯誤或知道我需要做的正確的輸出這個代碼?我需要向您展示更多代碼嗎?

+0

爲什麼這是一個問題,引入nokogiri ?因爲它在程序的其他部分中使用?您正在使用ERB模板,因此如果您使用的是Rails,並且沒有提及Nokogiri,那麼您的代碼應該包含ERB和可能的Rails,因爲代碼或數據中沒有提及它。 – 2014-11-24 16:04:47

回答

0

如果你想迭代三個數組在一起,你需要zip他們。這將使你呈現每個三重在一起(與第一形象,第一價格的第一項;與第二圖像和第二價格的第二個項目;等):

<table> 
    <% @items.zip(@images, @prices).each do |title, image, price| %> 
    <tr> 
     <td><%= title %></td> 
     <td><%= image %></td> 
     <td><%= price %></td> 
    </tr> 
    <% end %> 
    </table>