繁体   English   中英

Rails活动记录:更新语句中的SQL表达式

[英]Rails Active Record: SQL Expression In Update Statement

如何使用AR执行以下SQL语句:

UPDATE accounts SET balance = balance + 100 WHERE id = 1

我试图找到在AR更新语句中执行SQL表达式的方法,但是没有任何效果。 不能这样做

account.update balance: account.balance + 100

因为那样会打开各种种族条件问题。 DBMS是处理此类更新的适当实体。

知道如何使用AR编写它吗?

我意识到可以使用以下方法完成此操作:

Account.where(id: 1).update_all("balance = balance + 100")

但这对我来说看起来很不合理 我希望有一个更清洁的解决方案

您需要做:

account.increment :balance, 100

increment是文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM