每次,当我从 API 请求获取数据时,我都需要比较和更新记录(如果有任何更改)。
例如我已经保存了用户
user = User.first
user.name => 'name_one'
当我调用 api 时,api 返回我的用户,但名称已更改为 'name_two'
所以我需要将现有用户与新到达的用户进行比较,如果名称更改则替换它
调用api的例子
url= 'my api str'
result = Curl.get(url)
JSON.parse(result.body_str).each do |key, value|
value["commissions"].each do |k, v|
User.create(name: v["name"],etc... )
end
end
如果有任何建议,我会很高兴。
最佳答案
您还可以尝试以下操作:
u = User.first
u.name = "name_two"
u.name_changed? #=> true/false
u.name_was #=> "name_one" if it was "name_one"
这些被称为脏方法,对于此类任务非常有帮助。
谢谢
关于ruby-on-rails - 如何在保存之前将新数据与 bd 中的现有数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124912/