Rails拒绝添加关联的记录



我有一个表,它有两个外键关系-到Timeline和Phase。当我在开发数据库中创建一条记录时,它完全按预期工作,但当我在测试模式中创建时,它拒绝添加Timeline-您可以从INSERT语句中看到,它断然拒绝。。它甚至没有尝试添加它。当我在开发中运行下面完全相同的序列时,就可以了

可以添加/更新timeline_id,但它不会像应该的那样通过父phase_timeline对象引用时间线。我重复一遍,这一切在开发中都很好,但在测试中却不行。它把我逼疯了。它可能没有通过验证吗。。或者数据库可能已损坏。我是否可以运行一些控制台命令来进一步检查外键关系?

[33] pry(main)> t = Timeline.last
Timeline Load (0.3ms)  SELECT  "timelines".* FROM "timelines" ORDER BY "timelines"."id" DESC LIMIT $1  [["LIMIT", 1]]
=> #<Timeline:0x0055fd716dcfa8 id: 1, title: "England", timelineable_type: "Global", timelineable_id: 1, created_at: Thu, 24 Sep 2020 14:46:28 UTC +00:00, updated_at: Thu, 24 Sep 2020 14:46:28 UTC +00:00>
[34] pry(main)> p = Phase.last
Phase Load (1.3ms)  SELECT  "phases".* FROM "phases" WHERE "phases"."deleted_at" IS NULL ORDER BY "phases"."id" DESC LIMIT $1  [["LIMIT", 1]]
=> #<Phase:0x0055fd717f8450
id: 1,
name: "First phase",
development_id: 1,
created_at: Thu, 24 Sep 2020 14:46:28 UTC +00:00,
updated_at: Thu, 24 Sep 2020 14:46:28 UTC +00:00,
developer_id: 1,
division_id: 1,
number: 1,
deleted_at: nil,
total_snags: 0,
unresolved_snags: 0,
business: "core">
[35] pry(main)> pt = PhaseTimeline.create(phase: p, timeline: t)
(0.2ms)  BEGIN
SQL (0.5ms)  **INSERT INTO "phase_timelines" ("phase_id") VALUES ($1) RETURNING "id"  [["phase_id", 1]]**
(1.8ms)  COMMIT
=> #<PhaseTimeline:0x0055fd719ef9c0 id: 5, phase_id: 1, timeline_id: nil>

在经历了一番挠头和深入肠道之后。。这个问题是由两个具有相同名称的模型类引起的。这些类在两个单独的文件夹中,但具有相同的范围和相同的内容,但删除错误的类可以解决问题

最新更新