更新ActiveRecord中的当前值(Rails)

use*_*335 2 activerecord ruby-on-rails

在我的应用程序中,许多对象已经由Rails预加载.

现在我想更新其中一些对象属性.不幸的是,其中一些对象与我数据库中的同一对象有关.当我向myObject.balance(myObject.balance += value)添加一个值时,differentButSameObject中的属性平衡仍然具有相同的值.

一种解决方案可能是重新加载对象.我更喜欢像这样更新值: UPDATE myTable SET balance = balance + 10 WHERE id = 1.

这可能吗?

Nov*_*vae 6

您可以使用ActiveRecords update_all语句:

Object.where(:id => 1).update_all("balance = balance + 1")
Run Code Online (Sandbox Code Playgroud)