首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由于外键约束,无法删除对象

由于外键约束,无法删除对象
EN

Stack Overflow用户
提问于 2015-04-10 01:03:20
回答 2查看 27.7K关注 0票数 26

我正在尝试执行一个简单的user.destroy,但遇到了以下错误:

错误:表"users“上的update或delete违反了表"identities”上的外键约束"fk_rails_5373344100“详细信息:键(id)=(2)仍从表"identities”中引用。

下面是我的身份迁移

代码语言:javascript
复制
class CreateIdentities < ActiveRecord::Migration
  def change
    create_table :identities do |t|
      t.references :user, index: true, foreign_key: true
      t.string :provider
      t.string :uid

      t.timestamps null: false
    end
  end
end

以下是我的用户和身份模型:

代码语言:javascript
复制
class Identity < ActiveRecord::Base
  belongs_to :user

  validates_presence_of :uid, :provider
  validates_uniqueness_of :uid, :scope => :provider

  def self.find_for_oauth(auth)
    find_or_create_by(uid: auth.uid, provider: auth.provider)
  end
end

和用户:

代码语言:javascript
复制
class User < ActiveRecord::Base
  TEMP_EMAIL_PREFIX = 'ricky@writeit.com'
  TEMP_EMAIL_REGEX = /\ricky@writeit.com/

  # Include default devise modules. Others available are:
  # :lockable, :timeoutable
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :trackable, :validatable, :omniauthable

  validates_format_of :email, :without => TEMP_EMAIL_REGEX, on: :update
...

end

我是外键和引用的新手,所以我根本不确定如何修复这个问题。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29544693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档