【发布时间】:2023-02-23 02:50:16
【问题描述】:
我想为一个表使用自定义主键,并在其他表中引用该表。
但是我的代码出现rails PG::UndefinedColumn: ERROR: column "id" custom column 错误
模式.rb
create_table 'memberships', id: false, primary_key: :rank, force: :cascade do |t|
t.string 'rank'
t.integer 'discount_rate'
t.datetime 'created_at', precision: 6, null: false
t.datetime 'updated_at', precision: 6, null: false
end
create_table 'members', force: :cascade do |t|
t.references :membership, index: true, foreign_key: { on_delete: :cascade }
t.string 'name'
t.datetime 'created_at', precision: 6, null: false
t.datetime 'updated_at', precision: 6, null: false
end
会员.rb
class Membership < ApplicationRecord
has_many :members, foreign_key: :membership_rank
validates :rank, uniqueness: true
end
成员.rb
class Member < ApplicationRecord
belongs_to :membership
validates :name, length: { maximum: 30 }, uniqueness: true, presence: true
end
我检查了rails c,发现我的member是用membership_id = 0创建的。
我如何修复我的member表的代码以引用membership表的rank列?
====
Rails + Postgres Relation Issue With Custom Foreign Key
Specifying column name in a "references" migration
我在谷歌上搜索,但这些答案不适用于我的代码。
感谢您的所有建议。
【问题讨论】:
标签: ruby-on-rails