与没有主键ID的模型关联

时间:2010-11-23 18:19:21

标签: ruby-on-rails factory-bot

我在Rails 2上,最新版本的factory_girl使用的是1.2.4

我有两张桌子:

种族(代码,描述)
人( id ,姓名,...,* ethnicity_code *,...)

people.ethnicity_code是外键

在factory_girl factories.rb:

Factory.define :ethnicity
  f.sequence :code { |n| n+20 }
  f.description 'Foo'
end

Factory.define :person do |p|
  p.name 'So and so'
  ...
  p.association :ethnicity_code, :factory => :ethnicity
  ...
end

我的模型具有正确的关联集和“set_primary_key:code”

当我执行Factory(:person)时,由于外键约束,我总是会遇到插入错误。它似乎从关联中获取了不正确的主键。工厂女孩创造的种族记录很好,但它试图在人员表中插入一个“1”的值作为ethnicity_code。

1 个答案:

答案 0 :(得分:2)

我可能会在这里咆哮错误的树,但我怀疑问题是p.association :ethnicity_code ...应该是p.association :ethnicity ...。即,您将关联命名为模型中定义的关联而不是外键列。