Ruby on rails:更新rails中的多个记录

时间:2017-12-01 10:42:32

标签: sql ruby-on-rails ruby

假设我有哈希散列如下。可以使用“更新”来更新所有记录,如下所示。

 people = { 1 => { "first_name" => "David", "last_name" => "Freeman" }, 2 => { "first_name" => "Jeremy", "last_name" => "Stone" } .....}

 Person.update(people.keys, people.values)

这将为每条记录运行UPDATE查询。如何使用“ update_all ”来实现对所有记录运行单个查询的操作?

提到(this)但找不到解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我不认为这是可能的。这不是" update_all"的本质。想象一下,为您所需的结果编写一个SQL查询,它将涉及匹配每个id,然后对每个id进行必要的更新,从而将其与" update_all"进行对比。确实

你应该使用" update_all"当对一组元组执行相同的更新时,但显然在你的情况下,first_name和last_name对于每个元组都是不同的。

我认为只使用"更新"考虑到id被编入索引,不会对性能产生太大影响。但是,您始终可以选择编写本机SQL语句。