まあ、削除しようとしているだけなら、すぐに呼び出し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 つだけです。ただし、関連するオブジェクトはクリーンアップされません。