37

私はこれをやろうとしています

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

しかし、私は得る:

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

正しい構文は何でしょうか? 必要がなければ、それぞれを繰り返し処理したくありません。

4

1 に答える 1

76

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

それが役立つことを願っています...

于 2013-03-14T23:39:50.387 に答える