2010-11-23 5 views
0

Ich bin on Rails 2, die neueste Version von factory_girl zu verwenden ist 1.2.4Verbindung mit einem Modell, das nicht Primärschlüssel id

Ich habe 2 Tabellen hat:

ethnische Gruppen (Code, Beschreibung)
Menschen (id, Name, ..., * ethnicity_code *, ...)

people.ethnicity_code ist der Fremdschlüssel

In 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 

Meine Modelle haben die richtigen Zuordnungen festgelegt und „set_primary_key: Code“

Wenn ich Factory(:person), ich aufgrund der Fremdschlüssel einen Einsatz Fehler immer erhalten. Es scheint, dass es einen falschen Primärschlüssel von der Zuordnung erhält. Factory Girl erstellt die ethnische Aufzeichnung in Ordnung, aber es versucht, einen Wert von "1" als ethnicity_code in die People-Tabelle einzufügen.

+0

@jball danke für die revision – janechii

+0

froh zu helfen! (Ich wünschte, ich wüsste von Ruby-on-Rails, also könnte ich dir mit deinem Fehler helfen) – jball

Antwort

2

Ich könnte hier den falschen Baum bellen, aber ich vermute, das Problem ist, dass p.association :ethnicity_code ...p.association :ethnicity ... sein sollte. Das heißt, Sie benennen die Assoziation so, wie sie im Modell definiert ist, und nicht die Fremdschlüsselspalte.

+0

ok ja! Ich dachte, ich hätte das ausprobiert und es bombardiert, aber es scheint jetzt zu funktionieren! Danke! – janechii

Verwandte Themen