Rails输出Flickr API调用的列表版本

时间:2014-03-20 22:00:42

标签: ruby-on-rails arrays loops flickr

我已经从Flickr中取出了我的照片层次结构,并让我的画廊助手拥有以下两个助手:

module GalleryHelper

  def gallery_comparison(hierarchy)

    output = '<ul>'

    for collection in hierarchy["collections"]["collection"]
      output << traverse_collection(collection, 0)
    end

    output << '</ul>'
    output.html_safe
  end



  def traverse_collection(collection, parent)
    parent = parent == 0 ? 0 : parent["id"]
    o ||= ''
    o << '<li>COLLECTION: ' + collection['title'] + '</li>'

    if collection["set"]
      for set in collection["set"]

        o << '<li>ALBUM: ' + set["title"] + '</li>'

        # photos =  Flickr.photos_in_set(set["id"])
        # for photo in photos['photoset']['photo']
        #   o << '<li>' + 'a photo here' + '</li>'
        # end

      end
    end

    if collection["collection"]
      for child in collection["collection"]
        ((1))traverse_collection(child, collection)
        ((2))o << '<li>COLLECTION: ' + child["title"] + '</li>'
      end
    end

    o << 'End of traversal'
    o
  end

end

它基本上采用Flickr层次结构,迭代它并输出一个html列表到我的页面。

我的问题是,在**1**点,此traverse_collection行应调用自身,而不是这样做。

如果我评论点((1))并使用点((2)),我会完美地输出child["title"]

如何让traverse_collection运行以便自行调用?

任何想法?

1 个答案:

答案 0 :(得分:0)

只需调用traverse_collection并将输出发送到o

即可解决此问题
o << traverse_collection