gpt4 book ai didi

ruby-on-rails - 如何在没有id列的rails中添加外键约束

转载 作者:行者123 更新时间:2023-12-03 01:18:32 26 4
gpt4 key购买 nike

我有一个模型用户,我们有primary_key作为user_id而不是id,我知道我应该使用id作为primary_key,但客户希望我们应该使用user_id而不是id。

我有另一个表,我必须将该表与 user_id 关联起来

我正在为其他表添加这样的迁移:

t.references :user,             index: true, foreign_key: true

但是当我运行迁移时,我收到与外键约束相关的错误,例如:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: 错误: 外键约束中引用的列“id”不存在 更改表“user_devices”添加约束“fk_rails_e700a96826” 外键(“user_id”) 引用“用户”(“id”)

似乎 Rails 默认尝试使用 id 列指向其他表,但我在用户表中有 user_id。

那么我如何添加外键约束,例如:

 ALTER TABLE "user_devices" ADD CONSTRAINT "fk_rails_e700a96826"
FOREIGN KEY ("user_id")
REFERENCES "users" ("user_id")

有 Rails 迁移吗?

最佳答案

您可以像这样创建单独的迁移:

add_column :user_devices,:user_id,:integer
add_foreign_key :user_devices, :users, column: :user_id, primary_key: "user_id"

关于ruby-on-rails - 如何在没有id列的rails中添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com