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
es macht dasselbe, wenn Sie @company.users << @user
Ich bin mir sicher, dass ich hier etwas Dummes mache, ich weiß einfach nicht was.
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.
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,
Wenn die Datensätze jetzt ordnungsgemäß gespeichert werden, debuggen Sie die Parameter, die Sie an die Build-Methode übergeben.
Glückliches Debugging:)
Tags und Links ruby ruby-on-rails has-many-through