связь с моделью, у которой нет идентификатора первичного ключа - PullRequest
0 голосов
/ 23 ноября 2010

Я на Rails 2, новейшая версия factory_girl - 1.2.4

У меня есть 2 таблицы:

этническая принадлежность ( код , описание)
человек ( id , имя, ..., * код этнической принадлежности *, ...)

people.ethnicity_code - это внешний ключ

На фабриках factory_girl.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» в качестве этнического кода в таблице пользователей.

1 Ответ

2 голосов
/ 23 ноября 2010

Я мог бы не туда лаять, но подозреваю, что проблема в том, что p.association :ethnicity_code ... должно быть p.association :ethnicity ...То есть вы называете ассоциацию, как определено в модели, а не столбец внешнего ключа.

...