1

Ich habe ein Formular, das Attribute in zwei Modelle Company und verschachteltes Modell Address in einem einzigen Formular mit simple_nested_form_for und simple_fields_for speichert.Rails: Wie die Reihenfolge der Felder in einem Formular mit verschachtelten Feldern anpassen

Die Attribute:

Company: 
-legal form 
-uploads 

Address: 
-name 
-website 

In meiner Form möchte ich

-name (Address model) 
-legal form (Company model) 
-website (Address model) 
-uploads (Company model) 

so Vertauschen die form Attribute und nested_field Attribute

ich das versucht, die Reihenfolge der Felder ändern Folgendes, aber das schien nicht zu funktionieren.

<%= simple_nested_form_for @company do |f| %> 
    <%= f.simple_fields_for :address do |c| %> 
     <%= c.input :name %> 
    <% end %> 
    <%= f.input :legal_form %> 
    <%= f.simple_fields_for :address do |c| %> 
     <%= c.input :website %> 
    <% end %> 
    <%= f.input :uploads %> 
<% end %> 

Wie mache ich das?

Antwort

3

Obwohl es nicht aussieht wie alle Ihre Attribute (Sie sagten uploads war Adresse und Website war in der Firma in Ihrer Attributliste, aber das Formular passt nicht dazu) gibt es immer noch eine einfache Lösung für Ihre Frage.

Verschachtelte Felder verlassen sich auf ihren Builder, um anzugeben, in welchen Teil des Params-Hashs sie eingefügt werden sollen. Rufen Sie einfach den benötigten Builder auf.

<%= simple_nested_form_for @company do |f| %> 
    <%= f.simple_fields_for :address do |c| %> 
    <%= c.input :name %> 
    <%= f.input :legal_form %> 
    <%= c.input :website %> 
    <%= f.input :uploads %> 
    <% end %> 
    <%= f.submit %> 
<% end %> 

In jedem Ort, dass Sie die Firma Felder benötigen, können Sie Builder f und Sie an jedem Ort anrufen werden die Adressfelder benötigen, rufe Sie Builder c - aber sie alle in den kleinsten gemeinsamen Nenner verschachtelt so Sie sind alle verfügbar.

+0

Das ist eine ausgezeichnete Antwort. Ich habe genau das gesucht. (Entschuldigung für den Fehler bei der Bestellung). Prost, M – Matthias

Verwandte Themen