我有一种方法可以获得艺术家来自Lastfm的最佳专辑
def get_albums
@albums = Array.new
@artistname.each do |name|
s = LastFM::Artist.get_top_albums(:artist => name, :limit => 1)
r = JSON.parse(s.to_json)['topalbums']['album']['name']
@albums.push r
end
end
这个方法工作正常,只要艺术家有一个顶级专辑,就会返回每个艺术家的专辑数组,如果他们不这样做,我会得到一个NoMethodError未定义的方法`[]'为nil:NilClass。
我正在尝试做的是在解析时添加一个检查以尝试传递此NoMethodError但似乎无法弄明白。我试过这个:
def get_albums
@albums = Array.new
@artistname.each do |name|
s = LastFM::Artist.get_top_albums(:artist => name, :limit => 1)
r = JSON.parse(s.to_json)['topalbums']['album']['name']
if['topalbums']['album']['name'].empty?
@albums.push(@artistname + "does not have a top album")
else
@albums.push r
end
end
end
这给了我一个TypeError无法将String转换为整数消息
我有什么想法可以解决这个问题?感谢
答案 0 :(得分:0)
+
运算符不是ruby中的concat运算符。
您尝试使用的是<<
运算符。
@albums.push(@artistname << " does not have a top album")