【发布时间】:2021-11-26 20:52:29
【问题描述】:
假设我有一个这样的哈希数组
users_ar = [
{
id: 1,
name: 'Luke',
age: 19
},
{
id: 2,
name: 'Vader',
age: 44
},
{
id: 3,
name: 'Yoda',
age: 129
}
]
id 是他们在 User 模型中的 id。
如果我有数千条记录要更新,出于性能原因,如何在 ruby on rails 中一次更新所有记录(如果我不需要验证记录)?
我想按 id 查找现有记录并更新姓名和年龄。我正在寻找这样的东西:
users_to_update.update_all(users_ar)
我的 rails 版本是 5.2.3,我使用的是 MySQL。
谢谢,安德烈亚斯
【问题讨论】:
-
你将“更新”什么?名字?年龄?也许甚至是身份证?还是您的意思是
INSERT3 个新行而不是UPDATE3 个现有行?或者,也许是“upsert”,您可以添加新行或根据某个唯一键(大概是id)修改现有行。 -
那个“哈希数组”是关闭了
id吗?还是name? -
我已经更新了我的问题。我喜欢按 id 查找记录并更新姓名和年龄。
标签: mysql ruby-on-rails ruby activerecord rails-activerecord