ActiveRecord オブジェクトを削除するにはどうすればよいですか?
私は見たアクティブレコードクエリ削除に関しては、私が確認した限りでは何も記載されていません。
削除者
id
:現在のオブジェクトを次のように削除します:
user.remove
、条項に基づいて削除できますか
where
?
ベストアンサー1
それはdestroy
、destroy_all
例えば
user.destroy
User.find(15).destroy
User.destroy(15)
User.where(age: 20).destroy_all
User.destroy_all(age: 20)
あるいは、およびコールバックや依存する関連付けオプションを強制しないdelete
および を使用することもできます。delete_all
:before_destroy
:after_destroy
User.delete_all(condition: 'value')
主キーなしでレコードを削除できるようになります
注: @hammady のコメントによると、user.destroy
User モデルに主キーがない場合には機能しません。
注 2 : @pavel-chuchuva のコメントによると、destroy_all
with Conditions とdelete_all
with Conditions は Rails 5.1 で非推奨になりました - guides.rubyonrails.org/5_1_release_notes.html を参照してください。