複数のレコードを一括で更新する場合ActiveRecordではupdate_allを使う。そのとき対象のレコードをwhereで指定したり、limitで件数をしぼったりするときには、
Member.update_all("lock=0").where("lock=1").limit(100)
っとしてしまいがちだが、こうではなくて、
Member.update_all("lock=0","lock=1", :order=>"last_update", limit: 100 )
こうする。
0 件のコメント:
コメントを投稿