gpt4 book ai didi

ruby-on-rails - 将每个 JSON 对象保存到模型中

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:10 26 4
gpt4 key购买 nike

我希望将每个 JSON 对象保存在对模型的调用中,这样我就不必在每次加载应用程序时都调用 API,而是调用所有模型条目。

require 'httparty'
require 'json'

class Feed < ActiveRecord::Base
include HTTParty
base_uri 'https://www.parsehub.com/api/v2/projects'

# GET /feeds
# GET /feeds.json
def boom
response = self.class.get("/tVv8nTahbhgkyIUW8ByCe0-7/last_ready_run/data?&format=json")
@elements = response.parsed_response["image"]
@parsed = @elements.collect { |e| e['url'] }
end

这是我目前在我的模型中拥有的东西,它完美地调用了 API 并在我的 View 中显示了它们中的每一个。显然这不是最好的方法,我想将每个 JSON 的 URL 属性保存到我的模型中——不完全确定如何去做!

最佳答案

根据您的评论,您似乎想为响应 JSON 对象中的每个值创建一个新实例。

require 'httparty'
require 'json'

class Feed < ActiveRecord::Base
include HTTParty
base_uri 'https://www.parsehub.com/api/v2/projects'

has_many :image_urls

def fetch_image_urls
response = self.class.get("/tVv8nTahbhgkyIUW8ByCe0-7/last_ready_run/data?&format=json")
@elements = response.parsed_response["image"]

@elements.map do |image_info|
self.image_urls.create(url: image_info['url'])
end
end
end


class ImageUrl < ActiveRecord::Base
belongs_to :feed

# add_colum(:image_urls, :url, :string)
end

然后,要使用这个新方法...

feed = Feed.find(id)
feed.image_urls # => []
feed.fetch_image_urls # => [<ImageUrl url:http://example.com>, ...]
feed.image_urls # => [<ImageUrl url:http://example.com>, ...]

关于ruby-on-rails - 将每个 JSON 对象保存到模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com