【问题标题】:Saving JSON data to Database Rails from url将 JSON 数据从 url 保存到 Database Rails
【发布时间】:2015-05-27 02:04:41
【问题描述】:

我有一个已提供的 url,其中数据每 30 分钟更新一次,我想知道是否可以在数据更新时将数据保存到我的数据库中?我正在使用 Rails 4.2.0。

总共有10个url,每个都有不同的单元号,需要引用才能调用每个单元的每个数据。

网址结构

http://sitename/cgi-bin/site=1

JSON 结构

{"status"=>"ok", "data"=>[{"2014-08-11 11:00:00"=>14.9},{"2014-08-11 11:30:00"=>15.1}]}

【问题讨论】:

  • 对于数据中的每个元素你想要一个新记录吗?
  • 是的。所以我猜表的创建:日期|数字...

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


【解决方案1】:

使用您的 json 响应,可以通过以下方式完成:

json = JSON.parse('{"status"=>"ok", "data"=>[{"2014-08-11 11:00:00"=>14.9},{"2014-08-11 11:30:00"=>15.1}]}') #string representing your json

json['data'].each do |element|
  element.each do |key, value|
    Model.create(date: key, number: value) # This Model is the name of your model
  end
end

如果你让我给你一些建议,你可以发送 json 为:

{"status"=>"ok", "data"=>[{"date" => "2014-08-11 11:00:00", "number" =>14.9},{...}]}

因此您可以访问以下数据:element['date']element['number']

【讨论】:

  • 太棒了。不过还有一个问题。由于这是以我所说的格式提供的,因此有 10 个 url,每个 url 在 url 中都有不同的“单元号”。我已经更新了上面的样子,如何将其集成到 unit_id 列中?
  • @DollarChills 您必须在您的params 哈希中访问站点,我认为您可以使用params[:site],您可以为单个请求发布您的记录器信息吗?
【解决方案2】:

我认为你应该去找老太婆的工作。请参阅此 Whenever gem,它提供了用于编写和部署 cron 作业的清晰语法,您将每 30 分钟将数据保存到数据库中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2015-01-13
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多