Der Versuch, ein verschachteltes Formular in Rails zu erstellen, lässt sich jedoch mithilfe von Bootstrap-Registerkarten zusammenklappen.
Im Moment habe ich die folgenden:Rails verschachtelte Felder mit Bootstrap-Registerkarten
_form.html.rb
<%= f.fields_for :register_members do |rm| %>
<%= render 'register_member_fields', f: rm %>
<% end %>
<div class="links">
<%= link_to_add_association "Add Registration", f, :register_members, class: "btn btn-success btn-sm text-white" %>
</div>
_register_member_fields.html.erb
<div class="nested-fields">
<div class="panel panel-default fields">
<div class="panel-heading" role="tab" id="heading<%= f.index.to_s %>">
<h4 class="panel-title">
<a data-toggle="collapse" href="#tabCollapse<%= f.index.to_s %>" aria-expanded="true" aria-controls="tabCollapse<%= f.index.to_s %>">
Registration
<span class="panel-icon"></span>
</a>
</h4>
</div><!-- End .panel-heading -->
<div id="tabCollapse<%= f.index.to_s %>" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading<%= f.index.to_s %>">
<div class="panel-body">
<div class="field">
<%= f.label "Name", class: "input-desc" %>
<%= f.text_field :name, class: "form-control" %>
</div>
<div class="field">
<%= f.label :email, class: "input-desc" %>
<%= f.email_field :email, class: "form-control" %>
</div>
<div class="field">
<%= f.hidden_field :_destroy %>
<%= link_to_remove_association("Remove Registration", f) %>
</div>
</div><!-- End .panel-body -->
</div><!-- End .panel-collapse -->
</div><!-- End .panel -->
</div>
Offensichtlich mit, wie verschachtelte Felder arbeiten mit den Edelstein cocoon
dies schaffen eine neue _register_member_field
mit der gleichen id
für den Zusammenbruch. Das heißt, wenn Sie auf eine der Überschriften klicken, wird nur eines der verschachtelten Formulare geöffnet.
Irgendwelche Vorschläge, wie ich das richtig funktionieren lassen kann?
Können Sie auf diesem ... klären 1) Sie wollen eine Liste von Index # s? 2) Jeder Mitgliedsname in der Liste wird erweitert, wenn er angeklickt wird, um den Namen/die E-Mail anzuzeigen und Aktualisierungen/Löschungen zu erlauben? – Mirv
1) Ich brauche eindeutige Identifikatoren. Andernfalls wirken sich alle Registerkarten zum Erweitern/Reduzieren der Informationen (Name, E-Mail ...) auf den ersten komprimierbaren Bereich der Registerkarte aus. 2) Ja, das fasst es zusammen. Oder arbeiten wie eine Tab Akkordeon Sammlung [siehe Beispiel] (https://v4-alpha.getbootstrap.com/components/collapse/#accordion-example). – Corey