Ruby on rails 将Rails中的多个输入字段作为列表而不是单个名称发布。

Ruby on rails 将Rails中的多个输入字段作为列表而不是单个名称发布。,ruby-on-rails,ruby-on-rails-4,erb,form-for,Ruby On Rails,Ruby On Rails 4,Erb,Form For,我想向控制员提交一份清单,并附上的表格。此列表应填充text\u字段s 此实现将提交列表中只有一个文本字段值的部分列表(如预期)。我希望X个数量的text_字段s作为一个列表提交,因为文本字段的数量是动态的,以便接收以下类型的内容:params{…“name”:“something”,“some_list”:[“a”,“b”]}或类似的JSON B.雇员再培训局 添加带有文本字段名的multiple:true <%= form_for @my_model do |f|%> &l

我想向控制员提交一份清单,并附上的表格。此列表应填充
text\u字段
s

此实现将提交列表中只有一个文本字段值的部分列表(如预期)。我希望X个数量的
text_字段
s作为一个列表提交,因为文本字段的数量是动态的,以便接收以下类型的内容:
params{…“name”:“something”,“some_list”:[“a”,“b”]}
或类似的JSON


B.雇员再培训局
添加带有文本字段名的
multiple:true

<%= form_for @my_model do |f|%>
  <% f.text_field :name %>

  <% (0...@some_limit).each do |index| %>
    <%= f.text_field :some_list, multiple: true %>
  <% end %>
<% end %>

使用文本字段名添加
多个:true

<%= form_for @my_model do |f|%>
  <% f.text_field :name %>

  <% (0...@some_limit).each do |index| %>
    <%= f.text_field :some_list, multiple: true %>
  <% end %>
<% end %>

您可以像这样使用text\u field\u标记

<% (0...@some_limit).each do |index| %>
  <%= text_field_tag "#{f.object.class.to_s.underscore}[some_list][]" %>
<% end %>


这是一种黑客行为,公认的答案是合适的解决方案。

你可以像这样使用text\u field\u标签

<% (0...@some_limit).each do |index| %>
  <%= text_field_tag "#{f.object.class.to_s.underscore}[some_list][]" %>
<% end %>


这是一种黑客行为,公认的答案是合适的解决方案。

错误:
未定义的方法“some_list[]”。。。你是说?一些列表
。需要对模型进行任何更改吗?@erielmarimon您好,只需添加
multiple:true
即可,因为
错误:
未定义的方法“某些列表[]”。。。你是说?一些列表
。需要对模型进行任何更改吗?@erielmarimon您好,只需添加
multiple:true
它就会工作,因为
它不会将
某些字段的数据扭曲为提交数据的表单,相反,您会将其作为单个数据获得。@Gabbar正确,这是可行的,但不是特定于提交数据的表单。选中时,
是一个更准确的实现。@Gabbar更新了答案。现在它会像你一样工作expected@AbhilashReddy伟大的但是不是多重的吗?
true
是聪明的方式,用
f.text\u field
代替
text\u field\u tag
?@Gabbar同意,在我的回答中也提到了同样的事情。只是想展示我的解决方案,以便帮助人们理解如何提交数组。对于提交的数据,它不会将
某些\u字段
数据与表单_一起扭曲,而是将其作为单独的数据进行处理。@Gabbar正确,这是有效的,但不是特定于表单的。选中时,
是一个更准确的实现。@Gabbar更新了答案。现在它会像你一样工作expected@AbhilashReddy伟大的但是不是多重的吗?
true
是聪明的方式,用
f.text\u field
代替
text\u field\u tag
?@Gabbar同意,在我的回答中也提到了同样的事情。我只是想展示我的解决方案,这样可以帮助别人理解如何提交数组。