Method: ActiveRecord::Relation#delete
- Defined in:
- activerecord/lib/active_record/relation.rb
#delete(id_or_array) ⇒ Object
Deletes the row with a primary key matching the id argument, using an SQL DELETE statement, and returns the number of rows deleted. Active Record objects are not instantiated, so the object’s callbacks are not executed, including any :dependent association options.
You can delete multiple rows at once by passing an Array of ids.
Note: Although it is often much faster than the alternative, #destroy, skipping callbacks might bypass business logic in your application that ensures referential integrity or performs other essential jobs.
Examples
# Delete a single row
Todo.delete(1)
# Delete multiple rows
Todo.delete([2,3,4])
1050 1051 1052 1053 1054 |
# File 'activerecord/lib/active_record/relation.rb', line 1050 def delete(id_or_array) return 0 if id_or_array.nil? || (id_or_array.is_a?(Array) && id_or_array.empty?) where(model.primary_key => id_or_array).delete_all end |