2014-12-02 72 views
1

我试图使用rails gem为Spotify API查找特定专辑的艺术家。我会通过检索专辑的名称作为这样开始:使用Spotify API查找专辑的艺术家

album_results = RSpotify::Album.search("The Eminem Show") 

为了找到那张专辑的艺术家,我发表了如下方法上面的变量:

album_results.artists 

这将返回大量的数据的我不需要。我想要的只是艺术家的名字。我能够做部分完成:

album_results.first.artists.first.name 
=> "Eminem" 

我想什么它做的是返回名称的所有可用艺术家的所有专辑搜寻结果。我尝试使用select方法,但再一次得到了太多数据,我想要的东西:

album_results.select {|album| album.artists} 

什么是完成这一任务的最佳方法?

回答

0

使用select此处将返回所有记录与artists

您需要为使用collectmap

my_artists = album_results.flat_map{ |album| 
    album.artists.collect{|artist| artist.name} 
} 

编辑

使用flat_map它默认返回扁平阵列。

比使用collectflatten!

+0

使用更有效的'flat_map'代替外'collect'随后'拉平!'。 – 2014-12-02 08:48:41

+0

@theTinMan编辑。 – shiva 2014-12-02 09:47:13

相关问题