2016-07-27 2 views
1

Ich habe eine verschachtelte Tabelle mit meinem Formular zugeordnet, so dass ich ein neues Rezeptformular und verschachtelte Zutaten haben. Im Versuch, meine Form zu konvertieren simple_form zu verwenden und versuchen, es zu machen, so dass es ein einziges Etikett für die Felder und die Felder sind inline (I JavaScript-Taste mehr Zeilen Zutaten hinzufügen, wenn erforderlich)Simple_Form mehrere Zeilen mit mehreren Eingängen mit einer einzigen Beschriftung oben

EDIT:

So wurde die Etiketten in simple_form los und bekam es meist funktionieren, aber jetzt kann ich es nicht die neuen Zeilen als Zeilen hinzufügen und stellt es stattdessen als eine einzelne Spalte. Heres mein Code:

<table> 
    <tr> 
     <th>Ingredient Name</th> 
     <th>Info (sliced,minced,etc)</th> 
     <th>Amount</th> 
     <th>Unit</th> 
    </tr> 
    <%= f.fields_for :recipe_ingredients do |builder| %> 
     <%= render 'recipe_ingredient_fields', f: builder %> 
    <% end %> 
    <tr> 
     <td><%= link_to_add_fields "Add Ingredient", f, :recipe_ingredients,"", "Add a new Ingredient" %></td> 
    </tr> 
</table> 

Der Wirkstoff Teil:

<tr> 
    <td><%= f.input :ingredient, label: false %></td> 
    <td><%= f.input :info, label: false %></td> 
    <td><%= f.input :format_amount, label: false %></td> 
    <td><%= f.input :unit, label: false %></td> 
    <td><%= f.input :_destroy, as: :hidden, label: false %></td> 
    <td><%= link_to "Remove", '#', :onclick => h("remove_fields(this)"), class: "btn", title: "Remove Ingredient", remote: true %></td> 
</tr> 

Und der Javascript-Code:

function add_fields(link, association, content){ 
    var new_id = new Date().getTime(); 
    var regexp = new RegExp("new_" + association, "g"); 
    $(link).before(content.replace(regexp, new_id)); 
} 

Dies fügt es in aber alle Felder in der ersten Spalte ... I weiß, ich muss die vor Zeile anpassen, aber nicht sicher, was zur Auswahl der Zeile und nicht das Element

Antwort

0

Von was ich lesen Sie es scheint, Sie wollen einige weiche tabellarische Form (in einer Tabelle lesen), wenn das der Fall ist, können Sie die Tabelle mit normalen HTML erstellen und f.input_field anstelle von f.input verwenden diese Methode wird Ihnen das Feld allein, ohne den Rest des HTML : wrappers usw.

Möchten Sie das? Der Wrapper-HTML wird auch verwendet, um Fehler, Hinweise usw. anzuzeigen. Wie werden Fehler angezeigt? Sie können immer noch f.input verwenden, in einer Zelle möchten Sie vielleicht nur versuchen.

Verwandte Themen