Delete Records

This guide shows you how to delete records from the database.

Delete a Single Record

user = User.find(1)
user.try(&.delete!)
puts "User deleted"

Delete with delete!

Raises if record doesn't exist:

user = User.find!(1)
user.delete!

Delete with destroy!

destroy! triggers callbacks:

user = User.find!(1)
user.destroy!  # Runs before_destroy and after_destroy callbacks

Delete by ID

Delete with Conditions

Delete All Records

Soft Delete (if enabled)

If using soft deletes:

Cascade Delete

With foreign key cascade:

Without cascade, delete children first:

Delete with Transaction

Ensure atomic deletion:

Check Before Delete

Verify Deletion

Last updated

Was this helpful?