的多个对象这是希望为Rails行家扣篮:梁2:使用的form_for构建形成覆盖同一类
我有一个应该遍历一组LineItems
和收集表格每个信息。我试图让form_for
和fields_for
创建正确的字段名和参数给我控制器params散列,像
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" />
然而什么,我试图让(和faili除了回到专门的HTML标签以外寻找任何解决方案)是由line_item.id
索引的字段名称,例如, line_item [1928] [rma_qty]等。这将允许我的控制器遍历每个line_item并用给定的参数更新它。
- ...也许一个纯粹的REST UI,形式应与的
LineItem
一个实例,以及标准的form_for会工作 - 但用户应该能够一次与一个表单提交的所有更改。可能吗?
没有得到我的参数line_item.id,但你是对的,它让我走下去了解fields_for实际上是如何工作的 - 尽管它有时候看起来很奇怪 - 谢谢! – sbeam 2010-11-18 21:23:37
@sbeam我的不好,我错过了'fields_for'的第一个参数。我认为在这些助手中使用模型参考的符号稍微更具可读性。 – 2010-11-19 01:39:20