using has_many: through und build

8

Ich habe drei Modelle, alle für eine has_many: through-Beziehung. Sie sehen so aus:

%Vor%

Dies lädt gut, und die Joins sind für Abfragen gut gebaut. Allerdings, wenn ich etwas mache wie

%Vor%

Die Datensätze User und CompanyUser werden erstellt, das Feld company_id im Datensatz CompanyUser wird jedoch auf NULL

festgelegt %Vor%

es macht dasselbe, wenn Sie @company.users << @user

Ich bin mir sicher, dass ich hier etwas Dummes mache, ich weiß einfach nicht was.

    
rm-rf 19.02.2012, 02:52
quelle

2 Antworten

14

Du kannst has_many: through nicht so benutzen, du musst es so machen:

%Vor%

Dann wird die Assoziation korrekt definiert.

update

Im Fall des folgenden Kommentars müssten Sie, wie Sie bereits access_nested_attributes_for haben, folgendermaßen vorgehen:

%Vor%

Und Sie würden die Benutzer automatisch für Sie zu Unternehmen hinzufügen.

    
Maurício Linhares 19.02.2012, 04:18
quelle
4

Ich vermute Ihren params[:user] -Parameter, ansonsten scheint Ihr Code sauber zu sein. We can use build method with 1..n and n..n associations too , siehe hier .

Ich schlage vor, dass Sie zuerst sicherstellen, dass Ihre Modellassoziationen funktionieren, dafür öffnen Sie console und versuchen Sie Folgendes,

%Vor%

Wenn die Datensätze jetzt ordnungsgemäß gespeichert werden, debuggen Sie die Parameter, die Sie an die Build-Methode übergeben.

Glückliches Debugging:)

    
nkm 19.02.2012 05:06
quelle