我正在尝试这样做
User.find([23,45,68,123]).update_all(:is_active => true)
但我明白了:
NoMethodError: undefined method `update_all' for #<Array:0x00000007493778>
正确的语法是什么?如果我不需要,我宁愿不迭代每一个。
答案 0 :(得分:67)
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
我希望它有所帮助...