对于 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(使用前将#替换为@)