[英]Wrong time is saved into MySQL DB by Rails' update_all method
[英]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.