2013-03-14 59 views
23

我試圖做到這一點更新多行3.2

User.find([23,45,68,123]).update_all(:is_active => true) 

,但我得到:

NoMethodError: undefined method `update_all' for #<Array:0x00000007493778> 

什麼是正確的語法?如果我不需要,我寧願不重複每一個。

回答

53

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

我希望它可以幫助...

+0

不錯, 謝謝;效果不錯 – timpone 2013-03-15 00:02:45

+0

很棒的+1 – 2013-07-31 09:32:52