Ruby on rails Rails:如何使表单提交记录数组?
我需要制作一个表格,提交一系列记录。我正在使用rails 2.3.11,并尝试按照此处一对多部分中的说明进行操作: 但是,当我这样做时,会出现错误,或者表单只提交数组中的最后一条记录 这不起作用,因为@query[:filters]是一个数组,所以的字段\u将引发异常:Ruby on rails Rails:如何使表单提交记录数组?,ruby-on-rails,Ruby On Rails,我需要制作一个表格,提交一系列记录。我正在使用rails 2.3.11,并尝试按照此处一对多部分中的说明进行操作: 但是,当我这样做时,会出现错误,或者表单只提交数组中的最后一条记录 这不起作用,因为@query[:filters]是一个数组,所以的字段\u将引发异常: <% form_for :aquery, @query, :url => {:action => 'index'} do |a| %> <% a.fields_for :filters,
<% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
<% a.fields_for :filters, @query[:filters] do |f| %>
<p>
<%= f.select :field, @fields %>
<%= f.select :logic, ["all", "is", "is not", "none"]%>
<%= f.text_field :arg, :size => 30 %>
</p>
<% end %>
<%= submit_tag l(:button_apply) %>
<% end %>
{:action=>'index'}do|a |%>
30 %>
这不起作用,因为它忽略@query[:filters]的内容,并且无论数组有多大,都只呈现一组字段:
<% a.fields_for :filters do |f| %>
这不起作用,因为它只会提交数组中的最后一项:
<% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
<% @query[:filters].each do |filter| %>
<% a.fields_for :filters, filter do |f| %>
<p>
<%= f.select :field, @fields %>
<%= f.select :logic, ["all", "is", "is not", "none"]%>
<%= f.text_field :arg, :size => 30 %>
</p>
<% end %>
<% end %>
<%= submit_tag l(:button_apply) %>
<% end %>
{:action=>'index'}do|a |%>
30 %>
您需要运行过滤器并手动编制索引
<% form_for :aquery, @query, :url => {:action => 'index'} do |a| %>
<% @query[:filters].each_with_index do |filter, i| %>
<% a.fields_for :filters, filter, :index => i do |f| %>
<p>
<%= f.select :field, @fields %>
<%= f.select :logic, ["all", "is", "is not", "none"]%>
<%= f.text_field :arg, :size => 30 %>
</p>
<% end %>
<% end %>
<%= submit_tag l(:button_apply) %>
<% end %>
{:action=>'index'}do|a |%>
我有| f |%>
30 %>