Simple_Form多行输入,顶部有单个标签

时间:2016-07-27 14:51:54

标签: ruby-on-rails simple-form

我有一个与我的表单关联的嵌套表,所以我有一个新的配方表单和嵌套的成分。我试图将我的表单转换为使用simple_form并尝试使其成为字段的单个标签,并且字段是内联的(如果需要,我有javascript按钮添加更多的成分行)

编辑:

因此摆脱了simple_form中的标签并使其主要工作但现在我无法将其添加为行,而是将其作为单个列添加。继承我的代码:

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

这会添加它但第一列中的所有字段...我知道我需要调整前一行但不确定要选择行而不是元素

1 个答案:

答案 0 :(得分:0)

根据我的阅读,您似乎想要一些软表格形式(在表格中阅读),如果是这样的话,您可以使用普通的html构建表格并使用f.input_field而不是{{ 1}}此方法将单独为您提供字段,而不包含其他HTML:包装器等。

你想要这个吗?包装器HTML还用于显示错误,提示等。错误将如何显示?您仍然可以在单元格中使用f.input,您可能只想尝试它。