2

我有一个 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 方法。我想知道人们会如何更聪明地做到这一点,或者是否有一种方法可以批量检索一堆订阅对象,然后批量更新它们以加快处理速度?

4

1 回答 1

0

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

  params = {
    :id     => something,
    :subscription_uuid => something,
    :account_code   => something,
    :email      => something,
    :current_period_ends_at => something
  }
  Subscription.create!(params)
于 2013-10-03T06:08:51.397 回答