首页 > 解决方案 > 如何使用 Rails 中的 update_all() 方法传递可变参数值?

问题描述

我正在尝试使用 #update_all 方法在 rake 任务中高速批量更新大量数据。我必须更新电子邮件和电话字段。对于电话字段很容易设置为“00000000000”。在电子邮件字段中,我想获取存储在 first_name 字段中的名称并添加“@email.com”。我一直在尝试这样的事情:

User.update_all(email: "#{User.first_name}"+"@email.com", phone: "00000000000")

但它不起作用。有任何想法吗?

标签: mysqlruby-on-rails

解决方案


User.update_all("email = first_name || '@email.com', phone = '00000000000'")

||将连接字符串。每个用户的名字将与@email.com 连接并分配给电子邮件字段。


推荐阅读