我收到了Flickr API的回复,列出了我所有馆藏的树。
我基本上需要一个递归方法来循环并将每个集合添加到我的数据库中。
我的脑袋刚刚旋转。
这就是我所拥有的:
def add_collection(options = {})
Collection.create!({
:flickr_id => options['id'],
:title => options['title'],
:description => options['description'],
:primary => options['primary']
})
end
def self.complete_grab
collections = Flickr.get_collection_tree
collections.each do |c|
add_collection({id: c.id, title: c.title, description: c.description, primary: c.primary})
if c.has_children?
//
end
end
end
有什么想法?我接近解决它吗?
答案 0 :(得分:2)
我不熟悉Flickr API,但我认为您正在寻找的粗略结构是:
def complete_grab
add_all(Flickr.get_collection_tree)
end
def add_all(collections)
collections.each do |c|
add_collection({id: c.id, title: c.title, description: c.description, primary: c.primary})
add_all(c.children)
end
end
假设每个集合都有一个名为children的成员,其中包含多个子集合。