どのようにRailsの方法で記述しますか? 私はモデルマネージャーを持っています。 manager_levelが5の条件を満たすマネージャからすべてのレコードを削除します。Rails - 条件を満たすすべてのレコードを削除する
ありがとうございます。
どのようにRailsの方法で記述しますか? 私はモデルマネージャーを持っています。 manager_levelが5の条件を満たすマネージャからすべてのレコードを削除します。Rails - 条件を満たすすべてのレコードを削除する
ありがとうございます。
私はそれを削除するのではなく、破壊使用することをお勧めだと思います:
Manager.where(:manager_level => 5).destroy_all
これは動作するはずです:
Manager.where(:manager_level => 5).delete_all
注:これは依存レコードを削除しません。
はこれを試してみてください:
Manager.delete_all(manager_level: 5)
1.私は削除するかを指定するために変数を使用する必要があります。 2.テーブルにはインデックスがありません。これは他の2つのテーブル間のコネクタテーブルです。 –
私のために働かなかった。参照整合性のためにエラーが発生しました。 –
これは受け入れられた回答である必要があります。他のクエリはDELETINGの前にSELECTを試みるため、大きなデータセットでパフォーマンスの問題が発生します。 – toobulkeh
間違いなく有効ですが、「各レコードをインスタンス化してdestroyメソッドを呼び出すことで、条件に合致するレコードを破棄します。」 (http://apidock.com/rails/ActiveRecord/Relation/destroy_all)これは、大きな結果セットでは非常に遅くなる可能性があります。 –
ええ、私はモデルを一貫して保つことを考えていました。 – MurifoX
@MurifoX - あなたは破壊が削除より良いと思う理由を説明できますか?必ずしも一致しているわけではありませんが、あなたの答えをより完全にするのに役立ちます。 –