【发布时间】:2016-04-09 13:36:37
【问题描述】:
目前正在尝试调用 API 并将属性映射到我的模型。例如从 JSON 响应到模型中图像字符串的 image_src 字符串。但是现在它得到了错误'没有将String隐式转换为Integer'。
Feed.rb
require 'httparty'
require 'json'
class Feed < ActiveRecord::Base
include HTTParty
base_uri 'https://extraction.import.io/query/runtime'
has_many :entries
# GET /feeds
# GET /feeds.json
def fetch_data
response = self.class.get("/2365205f-8502-439e-a6d2-73988cfa03f1?&url=http%3A%2F%2F%2F")
@elements = response.parsed_response["extractorData"]
@elements.map do |image_info|
self.entries.create(image: image_info['url'])
end
end
end
Entry.rb
class Entry < ActiveRecord::Base
belongs_to :feed
end
HTML
<% @feed.entries.each do |image| %>
<div class="grid-item">
<%= image_tag(image) %>
</div>
<% end %>
JSON 响应
{
"extractorData": {
"url": "http://linxspiration.com/",
"resourceId": "e26012fd5f25602c1c4e0945a7507e1f",
"data": [
{
"group": [
{
"image": [
{
"src": "http://40.media.tumblr.com/0a38dd25a41e0702940c084b60bee860/tumblr_o5c0tyGhOP1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142509606341"
}
]
},
{
"image": [
{
"src": "http://36.media.tumblr.com/276def9e46bdfb9efee7f7d4e4444195/tumblr_o5c0szx4F21qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142506402604"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/4953cdecc24389d94844dfb88c819d8c/tumblr_o055uh8b7h1uhpqwfo1_1280.jpg",
"href": "http://linxspiration.com/post/142503176501/linxsupply-discipline-gets-shit-done-buy-this"
}
]
},
{
"image": [
{
"src": "http://41.media.tumblr.com/353f10283fc3a0237262629b6a395c90/tumblr_o5aadrw6l31qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142499072059"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/889c65a662a1b690f299593e3581b947/tumblr_o57uysuSjF1tq9q5vo1_1280.jpg",
"href": "http://linxspiration.com/post/142493659142/blazepress-sunrise-in-venice"
}
]
},
{
"image": [
{
"src": "http://45.media.tumblr.com/14c24e549a6559b48933f05ff40e3627/tumblr_o57vmsJ7gk1tq9q5vo1_400.gif",
"href": "http://linxspiration.com/post/142488060049/blazepress-i-lick-paw"
}
]
},
{
"image": [
{
"src": "http://36.media.tumblr.com/f184f397d14563c9e41136c5fe370016/tumblr_o59oo0pUy61qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142476686818"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/453b70fd4055952e907766a5942cc560/tumblr_o59ohsGHBo1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142470776914"
}
]
},
{
"image": [
{
"src": "http://41.media.tumblr.com/1de6c873de55ddb899f83441454ff5bb/tumblr_o59ohhnd0k1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142465333421"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/f71b3ee53f51a9679dc65096933f2b08/tumblr_o59of8kouq1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142456009994"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/b6aa0dc78619a6b9e09b232224c0bfb7/tumblr_o59oeu18Ly1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142452801623"
}
]
},
{
"image": [
{
"src": "http://41.media.tumblr.com/d1c5a23af31880d10fd89fc8a6a0b8e6/tumblr_o585z3mPuF1tq9q5vo1_1280.jpg",
"href": "http://linxspiration.com/post/142449893982/blazepress-life"
}
]
},
{
"image": [
{
"src": "http://41.media.tumblr.com/03369de74399e12e1901b3751917c512/tumblr_o54gbfJlXx1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142445969058"
}
]
},
{
"image": [
{
"src": "http://40.media.tumblr.com/6543cbb31ea206a59cbdd1e865d63562/tumblr_o54mncUOEP1qkegsbo1_1280.jpg",
"href": "http://linxspiration.com/post/142440337822"
}
]
}
]
}
]
},
"pageData": {
"statusCode": 200,
"timestamp": 1460206655245
}
}
任何帮助都会很棒!
【问题讨论】:
-
您是要获取 url linxspiration.com 或 img src 之类的 40.media.tumblr.com/0a38dd25a41e0702940c084b60bee860/… 吗?
-
我想将每个 image->src 映射到模型中的 'image' 字段
-
好的,查看更新的答案。
标签: ruby-on-rails json ruby-on-rails-4