在特定时间将JSON数据保存到数据库

时间:2017-11-09 06:28:25

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

我希望每天在特定时间(晚上10点)截断并保存来自外部URL的JSON数据。该URL需要我可以访问的登录,但不确定如何最好地实现此目的。

JSON的结构如下:

{
  "Region": [{"id":"1","region":"South"}],
  "Agent": [{"id":"1","first_name":"Tim","last_name":"Jones"}]
}

我创建了模型RegionAgent来存储数据,与上面的字段匹配。

这是我目前在Region模型中所拥有的

json = JSON.parse('http://....')

json['Region'].each do |data|
  Region.create(
    id: data['id'],
    region: data['region']
  )

我的问题是:

  • 这是否可以通过模型,或者我必须将其放入 控制器
  • 如何在特定时间截断并保存?

1 个答案:

答案 0 :(得分:0)

  1. 要从外部网址获取数据,您需要使用http客户端,例如Faraday或Httparty

  2. 获得json数据后,您可以根据需要对其进行解析和操作。

  3. 要在每天晚上10点自动化,您需要使用ActiveJob或Sidekiq等安排后台工作。