2016-03-22 22 views
3

Venues ve Clients numaralı bir uygulamam var.Raylar - PG Yabancı Anahtar İhlali DELETE

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 

O kadar dependent: :destroy ekleyerek çözmek için basit olacaktır: Bazı mekan silmeye çalıştığınızda

class Venue < ActiveRecord::Base 
    has_many :clients 
end 

Postgrees yabancı anahtar kısıtlaması ihlali şikayetçi:

Her mekan pek çok müşteri var Dernek.

Ama daha fazla mekanı olmasa bile müşterileri korumak istiyorum.

cevap

7

Geçersizleştirmeyi kullanabilirsiniz. İstemcilerde venue_id değerini sıfırlayacak. Ancak, yabancı anahtar kısıtlamasını sütundan kaldırmanız gerekir.

has_many :clients, dependent: :nullify 
+0

Mükemmel! sadece ihtiyacım olan şey. – goo