【问题标题】:Keeping data up to date in Ruby and MySQL在 Ruby 和 MySQL 中保持数据最新
【发布时间】:2013-10-02 20:41:30
【问题描述】:

我有一个 MySQL 数据库,其中包含一个存储来自第三方支付提供商服务的数据的表。我们存储的数据主要是客户的订阅详细信息。不幸的是,我需要下载一个导出文件并解析它以获取数据。我想要做的是设置一个日常工作来更新我数据库中的订阅 end_dates。假设我有一个如下所示的订阅对象:

Subscription object:
  attributes:
    id: 
    subscription_uuid: 
    account_code: 
    email: 
    current_period_ends_at:

我想知道的是使用rails在mysql中更新这些对象current_period_ends_at datetime字段的最有效方法。

我从一个看起来像这样的哈希数组开始:

[{:id => 1, :subscription_uuid => 123, :account_code => 10, :email => test@test.com, :current_period_ends_at => 2013-10-02 16:37:05}]

我想我会批量遍历数组,因为它是大量数据,并在数据库中的每个订阅对象上调用 rails update_attributes 方法。我想知道更聪明的人会如何做到这一点,或者是否有一种方法可以批量检索一堆订阅对象,然后批量更新它们以加快处理速度?

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-3 activerecord update-attributes


    【解决方案1】:

    我会使用创建!它生成一个对象并保存它。 create 还接受散列数组以创建和保存多个对象。您对批处理的直觉是正确的。

      params = {
        :id     => something,
        :subscription_uuid => something,
        :account_code   => something,
        :email      => something,
        :current_period_ends_at => something
      }
      Subscription.create!(params)
    

    【讨论】:

      猜你喜欢
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多