繁体   English   中英

Ruby on Rails活动记录:使用update_all在同一条记录中用另一个字段更新一个字段

[英]Ruby on rails active record: update a field by another field in the same record using update_all

如何将update_all用于以下目的:

UPDATE  table_name set field1=field2 * 2 where id = 1

在Rails4中,您可以执行

Model.where(id: 1).update_all("field = field2 * 2")

在先前版本的Rails中,您可以将条件传递给update_all ,就像这样

Model.update_all("field = field2 * 2", {:id => 1})

注意:

update_all 触发的Active Record回调或验证

我不确定您的意图是100%明确的,但是如果您只是想对控制台中运行此ID为1的所有记录进行1次更新,则可以。

Model.where("id = 1").each { |n|  (n.field1 = n.field2*2)}

暂无
暂无

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

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