ruby-on-rails - 如何在保存之前将新数据与 bd 中的现有数据进行比较

标签 ruby-on-rails

每次,当我从 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/

相关文章:

ruby-on-rails - Rails 背景图片上传导致应用程序超时

css - 什么会导致此网站上的响应功能无法在移动设备上运行?

ruby-on-rails - ruby 如何允许同名的方法和类?

ruby-on-rails - 如何在 Ruby 中使用 RSpec 通过 Windows 命令提示符获取颜色?

ruby-on-rails - 如何测试 Rails 3 中的 Controller 是否使用了正确的布局

ruby-on-rails - 如何将一个类放在链接内的跨度中?

ruby-on-rails - Rails路线奇怪

ruby-on-rails - 一个模型中有多个状态机?

ruby-on-rails - Rails 3.2.8 中 Twitter Bootstrap 和 jQuery.ui 冲突

ruby-on-rails - Rails 路由 url 名称助手