解析JSON响应时出现Rails错误消息

时间:2014-02-28 19:00:11

标签: ruby-on-rails ruby json parsing

我有一种方法可以获得艺术家来自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转换为整数消息

我有什么想法可以解决这个问题?感谢

1 个答案:

答案 0 :(得分:0)

+运算符不是ruby中的concat运算符。

您尝试使用的是<<运算符。

@albums.push(@artistname << " does not have a top album")