records というテーブルに school_id という列があります。
これで、school_ids の配列があり、配列に属する次の ID を持つすべてのレコードを削除したいと考えています。
問題は、たった 1 行のコマンドでそれを行う方法があるかということです。お気に入り:
Record.delete_all(:school_id => [1, 2, 3, 4])?
現在、ここでループ処理を行っており、可能な限りその部分を単純化しようとしています。ティア
records というテーブルに school_id という列があります。
これで、school_ids の配列があり、配列に属する次の ID を持つすべてのレコードを削除したいと考えています。
問題は、たった 1 行のコマンドでそれを行う方法があるかということです。お気に入り:
Record.delete_all(:school_id => [1, 2, 3, 4])?
現在、ここでループ処理を行っており、可能な限りその部分を単純化しようとしています。ティア
あなたはあなたの方法を使うことができます。Rails3.xを使用していることを願っています
Record.delete_all(:school_id => [1, 2, 3, 4])
SQLを生成します
DELETE FROM "records" WHERE "records"."school_id" IN (1, 2, 3, 4)
これをチェックしてくださいdestroy_all
削除する ID の文字列、配列、またはハッシュが必要です。
destroy_multiple のコントローラーに別のアクションを追加することがよくあります
def destroy_multiple
current_user.entries.destroy_all(:id => params[:user_ids])
redirect_to entries_url
end
コレクションルートを追加することを忘れないでください..
Rails についてはあまり詳しくありませんが、SQL では非常に簡単に実行できます。
delete from records where school_id in (1,2,3,4)
それが役立つことを願っていますか?
School.where('id IN (?)', school_ids).destroy_all