【Rails】update where in について
最初こうやってたけど、updateが複数回実行される形だったので非効率だった。
ids = [1, 2, 3] values = Array.new(ids.size, {status: false}) User.update(ids, values) # => update users set status = 0 where id = 1 # => update users set status = 0 where id = 2 # => update users set status = 0 where id = 3
こうすれば良いらしい。
ids = [1, 2, 3] User.where('id in (?)', ids).update_all(status: false) # => update users set status = 0 where id in (1, 2, 3)