2017-06-13 71 views
1

我想使用活動記錄的單個查詢來更新多行。我不必使用update_all,因爲它跳過驗證。有沒有辦法在軌道活動記錄中做到這一點?在不使用update_all的情況下在rails中進行批量更新?

+1

因爲驗證應用到你的模型的實例,你不能在一個查詢做..不是..收集可以循環通過所有項目並在開始塊內運行'update_attributes'並在驗證失敗時進行救援 – sa77

回答

0

這聽起來像你正在尋找Update records - 從文檔更新多個記錄;不同的山坳不同的數據

你可以做這樣的例子:

people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } } 
Person.update(people.keys, people.values) 
+0

但是對於每一條記錄,它都會引發一個單獨的更新查詢,所以我想要的是應該只有一個查詢爲所有更新啓動。 –

+0

不,這將只爲您的所有記錄觸發一個查詢 'Person.update(people.keys,people.values)' –

+0

@RahulOjha如果您滿意我的答案然後使其正確並投票 –

相關問題