I have an application that has Venues
and Clients
.
Each venue has many clients:
class Venue < ActiveRecord::Base
has_many :clients
end
When I try to delete some venue, Postgres complains about foreign key constraint violation:
PG::ForeignKeyViolation: ERROR: update or delete on table "venues" violates foreign key constraint "fk_rails_3afaf2f5fc" on table "clients" DETAIL: Key (id)=(3) is still referenced from table "clients". : DELETE FROM "venues" WHERE "venues"."id" = $1
It would be simple to solve by adding dependent: :destroy
to the association.
But I want to keep the clients, even if they have no more venue.
You can use nullify. It will set venue_id
on clients to null. But you need to remove foreign key constraint from the column.
has_many :clients, dependent: :nullify
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With