2009-08-06 3 views
0

Ich habe Probleme mit meinen Fixtures in Rails.Fremdschlüssel in Scheinwerfern in Schienen 2.0

Ich habe zwei Modelle, eine Nachricht und einen Benutzer. Das Benutzermodell wird aus einer erholsamen Authentifizierung generiert. Eine Nachricht hat einen Absender und einen Empfänger, die beide Benutzer sind.

Wenn ich die Fixtures nicht benutze funktioniert alles gut. Aber wenn ich versuche, sie in Fixtures zu verwenden, sind beide null.

Dies ist die Nachrichten Vorrichtungen Datei:

first_message_for_quentin: 
    title: First message 
    body: This is your first message. 
    recipient: quentin 
    sender: aaron 

quentin und Aaron sind die Benutzervorrichtungen, die durch ruhige Authentifizierung erzeugt wurden.

Gibt es eine Möglichkeit, die generierten Ids dort zu verwenden oder muss ich es anders machen?

+1

Haben Sie facility_girl, Machinist oder fixjour als Fixture Replacements angeschaut? – Laz

+0

Nein, noch nicht, aber werde tun. –

Antwort

0

Das Problem war in der Fixture-Datei, die durch eine entspannte Authentifizierung erstellt wurde.

quentin: 
    id: 1 
    ... 

aaron: 
    id: 2 
    ... 

Ich entfernte diese IDs und alles funktioniert prima.

+0

Ahh, das würde es tun. – csexton

3

Die ActiveRecord Fixtures erstellt die ID-Spalte für jede Zeile durch Aufrufen von Fixtures.identify auf der Bezeichnung, die Sie die Zeile in der Yaml gab.

So sollten Sie in der Lage sein, so etwas wie die folgenden Funktionen ausführen:

first_message_for_quentin: 
    title: First message 
    body: This is your first message. 
    recipient_id: <%= Fixtures.identify(:quentin) %> 
    sender_id: <%= Fixtures.identify(:aaron) %> 

Sie könnten bei einigen der docs zur Befestigung Etikett Interpolation suchen.

+0

Wird das später versuchen. Danke für die Unterlagen. –

+0

Dies hat nicht funktioniert. Ich grub etwas tiefer und fand das eigentliche Problem. –