【问题标题】:Rails and JSON data, only override if has been updated or newRails 和 JSON 数据,仅在已更新或新的情况下覆盖
【发布时间】:2017-11-14 06:33:00
【问题描述】:

我有一个从外部 URL 获取 JSON 数据并保存到我的数据库的任何 cronjob。我正在寻找一个选项来仅添加或更新自上次 rake 任务以来新的或已更改的记录。目前它只是在旧数据之上创建。

耙任务

namespace :properties do
  desc "Save Properties from API to database"
  task upload: :environment do

    json = JSON.parse('{"Property":[{"id":"1","street":"123 Fake Street","town":"Someplace","postcode":"000000"}]}')

    json['Property'].each do |data|
      property = Property.create 
      property.id = data['id']
      property.street = data['street']
      property.town = data['town']
      property.postcode = data['postcode']
      property.save
    end

  end
end

【问题讨论】:

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


【解决方案1】:

为了实现这一点,我做到了:

json['Property'].each do |data|
 property = Property.find_or_create_by(id: data['id'])
 property.id = data['id']
 property.street = data['street']
 property.town = data['town']
 property.postcode = data['postcode']
 property.save
end

感谢@Sajin。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多