正确格式化HTML格式的数组

时间:2014-11-24 11:52:03

标签: html ruby erb

我正在从网站上抓取产品信息,并尝试将其输出到网页上的表格中。

我被困了,因为我可以正确格式化为

的唯一代码
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>

是否有人能够发现我正在制作的错误或知道我需要做些什么才能正确输出此代码?我是否需要再向您显示代码?

1 个答案:

答案 0 :(得分: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>