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