Rails 4如何将动态参数传递给控制器​​?

时间:2014-03-15 19:32:02

标签: ruby-on-rails parameters params form-for

我认为我有这个表格:

<%= form_tag({:action => :update_quantity}, :params => [:ids_to_update]) do %>
<% @id_array = [] %>
<% @db_lines.each do |line| %>
<% @id_array << line['id'] %>
    <tr>
      <td><%= image_tag "#{line['preview_url']}&maxSize=135" %></td>
      <td><%= line['ProductCode'] %></td>
      <td><%= text_field_tag("updated_quantity#{line['id']}", "#{line['Quantity']}") %></td>
      <td><%= number_to_currency(line['UnitPrice']) %></td>
      <td><%= number_to_currency(line['Quantity'] * line['UnitPrice']) %>
    </tr>
<% end %>
    <tr>
    <td colspan="5" class="text-right">
    <%= hidden_field_tag :ids_to_update, @id_array.join(',') %>
    <%= submit_tag("Update Quantity", :class => 'tiny button raidus') %>
    </td>
    </tr>
<% end %>

在text_field_tag中,我将每个名称设置为updated_quantityx,其中x是记录的ID。当我不知道ID将是什么以及将有多少时,我如何将其中的每一个传递到form_tag的params部分?记录来自我的order_line模型,此页面是购物车的单独控制器..

1 个答案:

答案 0 :(得分:2)

您不需要params中的form_tag部分。 参数将由表单内的_tags自动生成。

text_field_tag值将以params[:updated_quantity#1]params[:updated_quantity#2]等方式传递给控制器​​。