verschachtelte Attribute für has_one association

8

Ich muss Attribute für eine Verknüpfung in neuen und bearbeiten Aktionen einrichten, also habe ich dies:

Produktmodell

%Vor%

Formular

%Vor%

im Controller

  

params.require (: speichern) .permit (: speichern) .permit!

Felder werden angezeigt, aber wenn ich das Formular absende, macht das keinen Sinn, die Speicherzuordnung ist leer. Wie kann das Problem gelöst werden?

UPD

%Vor%

Protokolle:

%Vor%     
Mark Pegasov 19.12.2013, 18:53
quelle

4 Antworten

15

Ok, die richtige Antwort ist

ändern

%Vor%

bis

%Vor%     
Mark Pegasov 19.12.2013, 20:10
quelle
4

Stellen Sie sicher, dass die erwarteten Parameter gesendet werden. (Überprüfen Sie die Pluralisierung)

Können Sie kopieren und einfügen, wie die Parameter von der Serverseite aussehen?

%Vor%

Das hilft, die Parameter richtig zu benennen

Wenn params naming korrekt ist, aber nicht akzeptiert wird, versuchen Sie, sie explizit anzugeben

%Vor%

Aktualisierung:

%Vor%

Verschachtelte Attribute Beispiele:

Ссылка

    
Andrew Wei 19.12.2013 18:57
quelle
0

Sehen Sie sich die Parameter in der Konsole an. Sie sollten etwas wie sehen:

%Vor%

Was bedeutet, dass Sie require : product (Sie möchten die Produktparameter) und die richtigen Attribute für den Speicher zulassen möchten.

%Vor%

Wenn Sie verlangen (: speichern), bedeutet das, dass Sie einen "Speicher" -Schlüssel im Stamm des Parameter-Hash erwarten, was nicht der Fall ist (und warum Ihre Assoziation leer wird.)

    
AJcodez 19.12.2013 19:01
quelle
0

Angenommen, der betreffende Controller ist ProductsController , Ihre starke Parameterdefinition ist falsch.

Versuchen Sie:

%Vor%

Oder, um strenger zu sein, erlauben Sie nur die erforderlichen Attribute:

%Vor%

Dabei sind :store_field1 und :store_field2 die Attribute von store model, die sich in Ihrer form befinden und die Sie zulassen möchten.

Aktualisierung:

Folgendes sollte basierend auf Ihrer Protokollausgabe funktionieren.

%Vor%     
vee 19.12.2013 18:59
quelle