0

我是 RoR 的新手,所以不要对我可能会说的愚蠢的事情感到惊讶......提前抱歉......

我正在尝试在两个模型“附录”和“合同”之间创建外键约束

ActiveRecord 现在是这样的

class Addendum < ActiveRecord::Base
    belongs_to :contract  
end


class Contract < ActiveRecord::Base
    has_many :addendums
end

因此,我需要该程序仅在将与现有合同相关联时才允许创建新的附录。我已经安装了 gem foreigner并创建了这个迁移:

class AddingForeignKeys < ActiveRecord::Migration
  def change
    add_foreign_key(:contracts, :addendums)
  end
end

运行rake db:migrate

并期望在 ActiveRecord::Base 上看到更改(指示外键约束),但不会发生更改

我究竟做错了什么?

4

1 回答 1

0

在附录表中有一个 contract_id 列就足够了,创建关联(在您的情况下为 has_many 和 belongs_to)并在附录模型中添加一个验证约束:

validates :contract, presence: true

希望有帮助

费德里科

于 2014-05-05T01:56:04.913 回答