1. ホーム
  2. ruby-on-rails

[解決済み] ActiveRecordオブジェクトを削除するにはどうしたらいいですか?

2022-03-15 03:05:16

質問

ActiveRecordオブジェクトを削除するにはどうしたらいいですか?

を見てみると アクティブレコードのクエリ で、削除に関する記述は見当たりません。

  1. による削除 id ,

  2. のように現在のオブジェクトを削除します。 user.remove ,

  3. を元に削除することは可能ですか? where 節がありますか?

解決方法は?

それは destroydestroy_all メソッドのように

user.destroy
User.find(15).destroy
User.destroy(15)
User.where(age: 20).destroy_all
User.destroy_all(age: 20)

あるいは deletedelete_all を強制しない :before_destroy:after_destroy コールバックや依存する関連付けのオプションを指定します。

User.delete_all(condition: 'value') を使用すると、レコードを削除することができます。 主キーがない場合

備考 : @hammady さんのコメントより。 user.destroy は、Userモデルに主キーがない場合は動作しません。

注2 : pavel-chuchuvaさん(@pavel-chuchuva)のコメントより。 destroy_all を条件とし delete_all 条件付きはRails 5.1で非推奨になりました - guides.rubyonrails.org/5_1_release_notes.html を参照してください。