2016-07-27 8 views
1

フォームにネストされたテーブルがあります。新しいレシピフォームとネストされた成分があります。イムはsimple_formを使用するように私のフォームを変換しようとフィールドのための単一のラベルがあるので、それをしようとフィールドは、インライン(私は必要に応じて食材の多くの行を追加するjavascriptのボタンがあります)ですSimple_Formいくつかの入力が複数行あり、一番上に単一ラベルが付きます

EDIT:

シンプルフォームのラベルを取り除いて、大部分は動作させましたが、今は新しい行を行として追加して、代わりに単一の列として配置します。 HERESに私のコード:

<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> 

部分成分:

<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> 

とJavaScriptコード:

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)); 
} 

これは最初の列ではなく、すべてのフィールドでそれを追加します... I私は前の行を調整する必要があるが、要素ではなく行を選択するために何を入れるべきかわからないことを知っている

答えて

0

私からそれは通常のhtmlを使用してテーブルを構築し、f.inputの代わりにf.input_fieldを使用することができる場合は、テーブルのフォームのいくつかの柔らかい(表示されている)の読んでいるように見えるこのメソッドは、 :ラッパーなど

あなたはこれが欲しいですか?ラッパーHTMLは、エラー、ヒントなどを表示するためにも使用されます。エラーはどのように表示されますか?あなたはまだf.inputをセルの中で使うことができます。ただ試したいかもしれません。

関連する問題