0

すべてのコレクションのツリーを一覧表示するFlickrAPIからの応答があります。

基本的に、ループして各コレクションをDBに追加するための再帰的なメソッドが必要です。

頭が完全に回転しています。

これは私が持っているものです:

  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

何かご意見は?私はそれを解決するのに近づいていますか?

4

1 に答える 1

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 というメンバーがあることを前提としています。

于 2013-03-04T23:09:32.587 に答える