对于每个循环通过API值

时间:2016-09-22 02:41:36

标签: ruby-on-rails haml

我无法找到正确的方法来列出我的所有数据,这是我的设置。 @product.pic_url将返回5张图片,但只显示第一张图片,我将如何遍历它们?

product.rb

class TaobaoProduct
  attr_reader :desc,
              :approve_status,
              :title,
              :item_url,
              :nick,
              :num_iid,
              :pict_url,
              :pic_url,
              :title,
              :volume,
              :zk_final_price,
              :reserve_price,
              :price,
              :detail_url,
              :cid

  attr_writer :title

  def initialize(product)
    product.each { |name, value| instance_variable_set("@#{name}", value) }
  end

  # function to get individual taobao product
  # product_id: Taobao product id
  def self.find(product_id)
    tb_hash = OpenTaobao.get(
      :method => 'taobao.item.get',
      :fields => 'num_iid,title,nick,desc,pic_url',
      :num_iid => product_id
    )
    new(tb_hash["item_get_response"]["item"])
  end
end

product.haml

.container
  .row
    .col-xs-12
      %h1= @product.title

  .row
    .product-v2.col-md-9
      .row
        .col-md-6.col-xs-12
          %img{:src => "#{@product.pic_url}" + "_400x400.jpg"}
        .col-md-6.col-xs-12
          .price-v2

1 个答案:

答案 0 :(得分:1)

假设Product#pic_url实际上返回了一个图片网址数组,你可以这样做:

.container
  .row
    .col-xs-12
      %h1= @product.title

  .row
    .product-v2.col-md-9
      .row
        .col-md-6.col-xs-12
          - @product.pic_url.each do |url| 
            %img{:src => "#{url}_400x400.jpg"}
        .col-md-6.col-xs-12
          .price-v2