我从JSON响应中提取一个整数,然后使用该整数作为循环的上限:
data = response.parsed_response["meta"]
pages = data['total']
(1..pages.to_i).step(1) do |page_num|
response2 = client.get('/item?page=#{page_num}&per_page=1', :headers => {'Authorization' => auth, 'Content-Type' => 'application/json'})
但是,我似乎无法以一种可用于HTTParty的方式将变量传递给URI:
/opt/chef/embedded/lib/ruby/1.9.1/uri/common.rb:176:in `split': bad URI(is not URI?): /items?page=#{page_num}&per_page=1 (URI::InvalidURIError)
我尝试了其他方法(例如'/item?page=' + page_num + '&...'
),但同样不成功。我并不是我忽略的地方,而是有另一种更正确的方法。
输出以整数形式返回,并且可以使用,但似乎没有传递到上面的URI字符串中。
我遇到了这个帖子:
但我不确定这是否适用,尝试调整解决方案失败(undefined method `strip' for 10:Fixnum (NoMethodError)
)
答案 0 :(得分:1)
而不是:
'/item?page=#{page_num}&per_page=1'
使用:
"/item?page=#{page_num}&per_page=1"
带单引号的字符串不允许插值;因此要进行插值,必须使用双引号字符串。
仅供参考:当涉及整数范围时,您无需指定"步骤(1)"因为它是默认值。