将ruby参数合并到字符串中会引发错误的url错误

时间:2015-07-15 22:18:40

标签: ruby-on-rails ruby

不确定我在这做什么

def get_full_stats(id)
        riot_url = 'https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/#{id}/ranked?api_key=mykey'
        response = HTTParty.get(riot_url)
        json = JSON.parse(response.body)
        json
    end

并在我的show.html.erb中调用以下内容

api = RiotApi.new
@info = api.get_full_stats(19380406)

wrong number of arguments (1 for 0)行的视图返回@info = api.get_full_stats(19380406)

我尝试将参数转换为字符串@info = api.get_full_stats('19380406'),但仍会引发相同的错误。

这里发生了什么?

重新启动服务器后,我现在看起来有URI::InvalidURIError错误。

1 个答案:

答案 0 :(得分:2)

您需要使用双引号进行字符串插值才能工作。例如,

def get_full_stats(id)
    riot_url = "https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/#{id}/ranked?api_key=mykey"
    response = HTTParty.get(riot_url)
    json = JSON.parse(response.body)
    json
end