使用Rails(5.1)form_with和fields_for(嵌套形式)

时间:2017-10-03 01:56:27

标签: ruby-on-rails nested-forms

Rails 5.1现在使用新的form_with代替form_for帮助程序。

使用form_with,我们必须手动设置HTML输入元素的id属性,否则label元素无法识别其相对输入。

例如:

<%= form.label :name %>
<%= form.text_field :name, id: :contact_name %>

但我在具有contact属性的phones对象上使用嵌套表单,该属性可能包含列表(多个)电话号码:

<%= form.fields_for :phones do |phone_fields| %>
  <div class="field">
    <%= phone_fields.label :number %>
    <%= phone_fields.text_field :number, id: ???????? %>
  </div>
<% end %>

如果查看HTML输出,生成的label元素将如下所示:

  <label for="contact_phones_attributes_2_number">Phone</label>

如何设置这些内部id的{​​{1}}属性?

我&#34;解决了#34;这个(丑陋)代码的问题:

text_field

怎么可能重写?

0 个答案:

没有答案