我有一个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方法。我想知道有多聪明的人会这样做,或者我是否有办法批量检索一堆订阅对象,然后又批量更新它们以使流程更快?
答案 0 :(得分:0)
我会用create!生成一个对象并保存它。 create还接受一个哈希数组,以便创建和保存多个对象。你对批处理的直觉是正确的。
params = {
:id => something,
:subscription_uuid => something,
:account_code => something,
:email => something,
:current_period_ends_at => something
}
Subscription.create!(params)