can't delete object due to foreign key constraint

后端 未结 2 517
太阳男子
太阳男子 2020-12-03 13:38

I\'m trying to do a simple user.destroy but running into the following error:

ERROR: update or delete on table \"users\" violates foreig

2条回答
  •  Happy的楠姐
    2020-12-03 14:19

    You would need to remove the Identity that references the user first. Then you can delete the user.. By default the foreign key is doing a restrict so you cannot delete the user if anything references to it.

    if you would like use Rails to handle destroying the identity you can do

    class User < ActiveRecord::Base
      has_many :identities,  dependent: :destroy 
    
      ......
    
     end 
    

    Which would cause Rails to destroy all the dependent records.

    But as you are using Foreign keys, you can adjust your migration to set cascade deletes

     add_foreign_key :identities, :users, on_delete: :cascade
    

    Assuming rails 4.2 which has native support

提交回复
热议问题