没有使用JSON将String隐式转换为Integer

时间:2016-03-27 15:45:29

标签: ruby-on-rails json ruby-on-rails-4

目前正在尝试显示某个JSON字段,但在尝试时会出现此错误。

控制器

require 'httparty'
require 'json'

class CatalogController < ApplicationController

    # GET /feeds
    # GET /feeds.json
    def index
      # GRAB THE URL
      url = 'https://api.import.io/store/connector/ab589079-436a-47da-923c-c77cb572491d/_query?input=webpage/url:http%3A%2F%2Flinxspiration.com%2F%23_%3D_&&_apikey=dc9014801ce443229a302ec1db31bc7683360af6669d43767164345452e9faef39e958817471e8c77f894d1032293acc8656cefa3df03123ee06a331f313c7f131ed345f4bf0fa8f460a80a6e9c4cbc1'
      response = HTTParty.get(url)

      # PARSE THE RESPONSE
      @elements = response.parsed_response["results"]
      @parsed = @elements["results"]["media_images"]

    end

end

查看

<%= @parsed %>

2 个答案:

答案 0 :(得分:2)

response.parsed_response["results"]的结果是哈希数组。所以你没有'media_images'。对于数组的每个元素,您都有media_images。您可以将它们收集到这样的数组中:

@parsed = @elements.collect { |e| e['media_images'] }

答案 1 :(得分:0)

该例外情况让我认为您尝试将Array作为Hash进行访问。因为Array采用索引,所以Ruby试图将传递的密钥转换为Array索引。

rails console中尝试使用您的代码并仔细检查。