ここに、現在のトラストレベルが0または1であるすべてのユーザーのトラストレベルを2に設定するための一括操作の例を示します。
これは低速ですが、すべての副作用(グループメンバーシップの更新、バッジの付与、ロギング)を適切にトリガーします。特にユーザーが1000人未満の場合に推奨される場合があります。注意:これは手動でロックされたトラストレベルを持つユーザーはスキップしません。それらをスキップしたい場合は、クエリに.where(manual_locked_trust_level: nil)を追加してください。
User.where(trust_level: [0, 1]).find_each do |user|
user.change_trust_level!(TrustLevel[2])
end
ユーザーが1000人以上いた場合は、代わりにこれを使用しますが、これはすべての副作用(グループの更新、バッジ、ロギング)をバイパスし、ロックされたトラストレベルを尊重しません。
DB.exec("UPDATE users SET trust_level = 2 WHERE trust_level IN (0, 1)")