2017-04-20 3 views
0

Ich habe ein Buchungsmodell, das viele Booking_Items hat. Die Buchung hat ein start_date und ein end_date. Die Booking_Items können unterschiedliche Werte für start_date und end_date haben.Rails, Cocoon: Setzen von Werten in verschachtelter Form von Eltern

Ich habe eine verschachtelte Form mit Kokon. Es funktioniert großartig - erlaubt zusätzliche Elemente, Updates, löscht. Ich möchte das start_date und das end_date aller neuen Booking_Items auf die des übergeordneten Elements zurücksetzen.

Gibt es einen korrekten Ansatz zum Festlegen dynamischer Standardwerte für verschachtelte Elemente?

Antwort

0

Die einfachste Möglichkeit ist die Verwendung der Option :wrap_object (documentation). Dies ermöglicht es Ihnen so etwas wie

= link_to_add_association('add booking-item', @form_obj, :booking_items, 
    wrap_object: Proc.new { |bi| bi.start_date = @booking.start_date; bi }) 

Da diese auf dem Server vorgerendert ist, ist dies nicht wirklich „dynamisch“, wenn der Benutzer die start_date/end_date der Buchung in Form, neue Buchung-Elemente verändert werden immer noch mit den ursprünglichen Daten gerendert werden. Wenn dies das ist, was Sie wollen, müssen Sie zu js und cocoon callbacks zurückkehren.

Verwandte Themen