在循环RoR中连接JSON

时间:2018-11-22 14:21:58

标签: ruby-on-rails api firebase

我想在一个查询中连接JSON结果并将其直接保存到Firebase。

当我尝试这样的事情时,一切正常:

        getData = RestClient.get 'https://exampleapi.com/api/?page=1'
        getData2 = RestClient.get 'https://exampleapi.com/api/?page=2'
        dataToObj = JSON.parse(getData.body)
        dataToObj2 = JSON.parse(getData2.body)
        results = dataToObj['results'] + dataToObj2['results']
        firebase.push("results", results)

但是我有20页,并且我尝试使用for循环,但它不起作用:

      for i in 1..20 do
          url = 'https://exampleapi.com/api/?page='
          link = url + i.to_s
          getData = RestClient.get link
          dataToObj = JSON.parse(getData.body) 
          results = dataToObj['results']
          save += results
      end
          firebase.push("results", save)

是否可以通过这种方式进行?

1 个答案:

答案 0 :(得分:1)

我看不到save的定义位置。假设dataToObj['results']是一个数组,则可以首先将save初始化为一个空数组;做...

save = []
(1..20).each do |i|
  get_data = RestClient.get "https://exampleapi.com/api/?page=#{i}"
  save += JSON.parse(get_data.body)['results']
end
firebase.push("results", save)