【问题标题】:SQLite3::ConstraintException: FOREIGN KEY constraint failed: DELETE FROMSQLite3::ConstraintException: FOREIGN KEY 约束失败:DELETE FROM
【发布时间】:2018-06-10 09:48:39
【问题描述】:

我觉得我遗漏了一些非常明显的东西,但我正在做的是在我的用户模型上测试 destroy 路由。

当我尝试@user.destroy 时,我得到以下异常:

*** ActiveRecord::InvalidForeignKey Exception: SQLite3::ConstraintException: FOREIGN KEY constraint failed: DELETE FROM "users" WHERE "users"."id" = ?

唯一的问题是,我已经为has_many 关联设置了dependent: :destroy,并且我也尝试了:delete_all 无济于事。这是我目前与此模型的唯一关联。

有什么想法吗?我敢肯定它很简单

【问题讨论】:

  • 请阅读this accepted answer。我建议您的设置存在问题,例如 dependent 选项不起作用。
  • 好像不是这样,我没有through依赖
  • 您是否在测试中创建了另一个引用用户的对象?当我没有正确安排人际关系时,我遇到了类似的问题。

标签: ruby-on-rails activerecord sqlite


【解决方案1】:

检查您的架构以查看您的模型中是否有其他关系,如果您有更多关系,请使用dependent: :destroy,同时显示架构以查看关系将有助于查看其他模型是否与您的模型有关系。

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多