Rails 2:使用form_for构建覆盖同一类的多个对象的表单

2024-01-10

对于 Rails 专家来说,这有望是一个灌篮:

我有一个应该迭代一组的表单LineItems并收集有关每个的信息。我想得到form_for and fields_for创建正确的字段名称和参数,为我的控制器提供一个参数哈希,例如

params[:line_items] = { <line_item.id> => { :rma_reason => "some string", :rma_qty => 2 } }

我所拥有的是:

<% form_for(@object) do |rma_form| %>
  <% @order.line_items.each do |item| %>
  ....
    <% fields_for item do |item_f| %>
      <%= item_f.text_area :rma_reason %>
      <%= item_f.text_field :rma_qty, :value => item.quantity, :size=>3 %>
    <% end %>
  ....
  <% end %>
<% end %>

最终的 HTML 看起来像这样(我猜是你所期望的):

<textarea id="line_item_id" name="line_item[id]"></textarea> 
<input id="line_item_rma_qty" name="line_item[rma_qty]" size="3" type="text" value="1" />

However我想要得到的(除了返回临时 HTML 标签之外没有找到任何解决方案)是,由line_item.id,例如例如,line_item[1928][rma_qty]。这将允许我的控制器迭代每个 line_item 并使用给定的参数更新它。

  • ...也许在纯 REST UI 中,表单应该绑定到一个实例LineItem,并且标准 form_for 可以工作 - 但用户应该能够使用一张表单一次提交所有更改。是否可以?

当您嵌套表单字段时,您必须确保链接fields_for方法形成适当的表单生成器:

<% rma_form.fields_for :line_item, item do |item_f| %>

通过致电fields_for独自一人,你打破了链条form_for因此字段名称不正确。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 2:使用form_for构建覆盖同一类的多个对象的表单 的相关文章

随机推荐