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%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%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.
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.)
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%Tags und Links ruby-on-rails-3 ruby-on-rails