Ruby on Rails - 外键(外国人宝石)

时间:2014-05-05 01:32:28

标签: ruby-on-rails foreign-keys constraints foreigner

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

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

ActiveRecord现在就像这样

class Addendum < ActiveRecord::Base
    belongs_to :contract  
end


class Contract < ActiveRecord::Base
    has_many :addendums
end

所以,我需要该程序只允许创建一个新的附录,如果它将与现有合同相关联。我已经安装了gem 外国人并创建了这个迁移:

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

运行 rake db:migrate

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

validates :contract, presence: true

希望帮助

费德里科