首页 > 解决方案 > 在 ruby​​ on rails 的一个查询中更新多条记录

问题描述

假设我有一个这样的哈希数组

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。

谢谢, 安德烈亚斯

标签: mysqlruby-on-railsrubyactiverecordrails-activerecord

解决方案


activerecord-import如果您希望进行具有良好性能的大批量更新,gem 可能是您所需要的:https ://github.com/zdennis/activerecord-import


推荐阅读