簡體   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