2016-04-19 6 views
1

Nachdem der Benutzer das Formular übermittelt, aber bevor die Zuordnung hinzugefügt wird, ist es möglich, das verschachtelte Feld während dieser Zeit zu ändern?Ändern Sie Nested_Field vor dem Hinzufügen von Assoziation Cocoon

Zum Beispiel meiner verschachtelten Felder können wie folgt aussehen:

<div class='nested-fields'> 
    <div class="field"> 
     <%= f.label :count %> 
     <%= f.number_field :count %> 
    </div> 
    <%= link_to_remove_association "remove section", f %> 
</div> 

Say I Zahl x 2 vor der Vereinigung multiplizieren will Zugabe (nach Benutzerformular einreicht). Ist das möglich?

Oder ein komplexeres Beispiel, ich möchte vielleicht die ganze Zahl in eine Zeichenfolge konvertieren dann speichern Sie die Zuordnung.

Link zu Ausgabe: https://github.com/nathanvda/cocoon/issues/361 (Mir wurde gesagt, SO schreiben auf)

+0

ich _suggested_ Sie dies hier fragen, weil es sich nicht um eine Kokon Problem, und andere Leute können Ihnen schneller helfen, als ich kann. Es gibt viele verschiedene Möglichkeiten, dies zu erreichen. Offensichtlich ist das nicht dein wirkliches Problem, sondern ein ähnliches Beispiel. Für mich klingt es kontraintuitiv, dass ein Wert vor dem Speichern geändert wird, also wenn der Benutzer das Element dann bearbeiten möchte, während Sie den umgekehrten Vorgang ausführen, bevor Sie es dem Benutzer anzeigen. Ein bisschen mehr Hintergrund könnte also eine bessere/geeignetere Lösung bieten. Auch die Umwandlung in eine Zeichenfolge erfolgt automatisch, wenn die Datenbankspalte eine Zeichenfolge ist. – nathanvda

+0

@nathanvda Danke für die Antwort. Ich habe auch den Link zum Thema gepostet, wie du vorgeschlagen hast :) – Onichan

Antwort

3

Ja, können Sie ändern Sie params erlauben:

def some_params 
    params.require(:some).permit(:count).tap do |white_list| 
    white_list[:count] = 2 * params[:some][:count].to_i 
    end 
end 
Verwandte Themen