まあ、削除しようとしているだけなら、すぐに呼び出しdestroy_all
たりdelete_all
実行したりします
Rom::Leaderboard.where("pvp_type = ? AND server_id = ?", pvptype, server_id).destroy_all
また
delete_list = Rom::Leaderboard.where("pvp_type = ? AND server_id = ?", pvptype, server_id)
delete_list.destroy_all
destroy_all
との違いについてはdelete_all
。
destroy_all
: 関連するオブジェクトは、destroy メソッドを呼び出すことによって、このオブジェクトと共に破棄されます。これは、各オブジェクトを効果的にループし、それを呼び出しますdestroy
。したがって、オブジェクトごとに少なくとも 1 つのクエリがあります。
delete_all
: 関連するすべてのオブジェクトは、:destroy メソッドを呼び出さずにすぐに破棄されます。delete from leader_boards
これにより、基本的に where 句を使用して単一のクエリが作成されます。したがって、オブジェクトがいくつあっても、実行されるクエリは 1 つだけです。ただし、関連するオブジェクトはクリーンアップされません。