Ich habe den Cocoon-Edelstein, der gut funktioniert, um verschachtelte Felder in verschiedenen Tiefen hinzuzufügen und zu entfernen. Ich habe auch die Callbacks after-insert
und after-remove
, die auf der ersten Verschachtelungsebene mit einer ID arbeiten. Ich kann es auf der zweiten Ebene nicht mit dem Klassennamen auslösen, den ich verwende, da es mehrere Sätze dieses verschachtelten Feldsatzes geben wird.Rails 4 & Cocoon gem - Bei tief verschachtelten Feldern kann der Rückruf nicht ausgelöst werden Klassenname
views/car_buyers/_form.html.haml
...
#cars
= f.simple_fields_for :cars do |c|
= render 'car_fields', f: c
.link-add
= link_to_add_association ' + Add a Car', f, :cars, partial: 'car_fields'
...
views/car_buyers/_car_fields.html.haml
.nested-fields.car
...
.upgrade-options
= f.simple_fields_for :upgrade_options, do |uo|
= render 'upgrade_option_fields', f: uo
.link-add
= link_to_add_association ' + Add an Upgrade Option', f, :upgrade_options, partial: 'upgrade_option_fields'
...
views/car_buyers/_upgrade_option_fields.html.haml
.nested-fields.upgrade-option
= f.input :upgrade_option_type, label: 'Upgrade Option',
collection: @upgrade_options_list,
include_blank: 'Select...',
input_html: { class: 'upgrade-option-type-select input-upgrade-option' },
error: 'Upgrade Option selection required.'
= f.input :upgrade_option_value, label: 'Upgrade Option Value',
collection: @upgrade_option_values_list,
include_blank: 'Select...',
input_html: { class: 'upgrade-option-value-select input-upgrade-option' },
error: 'Upgrade Option Value selection required.'
.link-remove
= link_to_remove_association icon('remove'), f, class: 'upgrade-option-remove-link remove-link'
Vermögenswerte/Javascripts/car_buyers.js
$(document).ready(function() {
...
$('#cars').on('cocoon:after-insert', function() {
// this is working
...
}).on('cocoon:after-remove', function() {
// this is also working
...
});
...
$('.upgrade-options').on('cocoon:before-insert', function() {
// this is NOT working
...
});
...
});
Nicht turbolinks verwenden, wenn es ankommt. Überprüfen Sie das Markup, um sicherzustellen, dass die IDs/Klassen korrekt sind. Es scheint, dass etwas Grundlegendes fehlt.
Danke.