簡體   English   中英

如何使用 Rails 中的 update_all() 方法傳遞可變參數值?

[英]How to pass a variable parameter value using the update_all() method in Rails?

我正在嘗試使用 #update_all 方法在 rake 任務中高速批量更新大量數據。 我必須更新 email 和電話字段。 對於電話字段很容易設置為“00000000000”。 在 email 字段中,我想獲取存儲在 first_name 字段中的名稱並添加“@email.com”。 我一直在嘗試這樣的事情:

User.update_all(email: "#{User.first_name}"+"@email.com", phone: "00000000000")

但它不起作用。 有任何想法嗎?

User.update_all("email = first_name || '@email.com', phone = '00000000000'")

|| 將連接字符串。 每個用戶的名字將與@email.com 連接並分配給 email 字段。

另一種選擇,假設您使用的數據庫支持CONCAT() function (大多數都支持):

User.update_all("email = CONCAT(first_name, '@email.com'), phone = '00000000000'")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM