2015年3月27日金曜日

【ActiveRecord】update_allでのwhere, limitの指定方法

使うたびに忘れるのでメモ

複数のレコードを一括で更新する場合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 件のコメント:

コメントを投稿