我已经从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
运行以便自行调用?
任何想法?
答案 0 :(得分:0)
只需调用traverse_collection并将输出发送到o
o << traverse_collection