[英]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.