23
我試圖做到這一點更新多行3.2
User.find([23,45,68,123]).update_all(:is_active => true)
,但我得到:
NoMethodError: undefined method `update_all' for #<Array:0x00000007493778>
什麼是正確的語法?如果我不需要,我寧願不重複每一個。
我試圖做到這一點更新多行3.2
User.find([23,45,68,123]).update_all(:is_active => true)
,但我得到:
NoMethodError: undefined method `update_all' for #<Array:0x00000007493778>
什麼是正確的語法?如果我不需要,我寧願不重複每一個。
find
返回一個數組,因此您不能使用update_all
。
爲了解決這個問題,我想你可以使用where
,它返回一個ActiveRecord::Relation
,所以update_all
應該工作:
User.where(:id =>[23,45,68,123]).update_all(:is_active => true)
http://apidock.com/rails/ActiveRecord/Relation/update_all
我希望它可以幫助...
不錯, 謝謝;效果不錯 – timpone 2013-03-15 00:02:45
很棒的+1 – 2013-07-31 09:32:52