使用对象属性 update_all

Vek*_*kka 2 ruby activerecord ruby-on-rails

我感兴趣是否可以使用对象属性作为update_all方法中的值。

假设我们有关系Article并且它有属性part1part2。现在我想更新与的值part1相关的所有对象的属性。Articlepart2

Article.update_all(part1: current_object.part2)
Run Code Online (Sandbox Code Playgroud)

我只是current_object用来表示当前更新的对象。

我知道我可以做类似的事情

Article.find_each { |article| article.update(part1: article.part2) }
Run Code Online (Sandbox Code Playgroud)

但我想知道这是否可以通过update_all方法实现。

mar*_*dze 6

下面的代码将做到这一点。但你为什么要这样做?-))

Article.update_all("part1 = part2")
Run Code Online (Sandbox Code Playgroud)