我有一个MySQL数据库,其中有一个表,存储来自第三方支付提供商服务的数据。我们存储的数据主要是客户的订阅详细信息。不幸的是,我需要下载一个导出文件并对其进行解析才能获得数据。我想要做的是设置一个每日作业来更新我数据库中的订阅end_dates。假设我有一个订阅对象,如下所示:
Subscription object:
attributes:
id:
subscription_uuid:
account_code:
email:
current_period_ends_at:
我想知道的是使用rails在mysql中更新这些对象current_period_ends_at日期时间字段的最有效的方法。
我从一个哈希数组开始,它看起来像这样:
[{:id => 1, :subscription_uuid => 123, :account_code => 10, :email => test@test.com, :current_period_ends_at => 2013-10-02 16:37:05}]
我想我应该分批迭代数组,因为它是大量数据,并对数据库中的每个subscription对象调用rails update_attributes方法。我想知道更聪明的人会怎么做,或者是否有一种方法可以批量检索一堆订阅对象,然后批量更新它们,以使过程更快?
发布于 2013-10-03 14:08:51
我会使用create!它生成一个对象并保存它。create还接受散列数组,以便创建和保存多个对象。您对批处理的直觉是正确的。
params = {
:id => something,
:subscription_uuid => something,
:account_code => something,
:email => something,
:current_period_ends_at => something
}
Subscription.create!(params)
https://stackoverflow.com/questions/19146458
复制相似问题