如何在Rails中以嵌套形式更新子对象

时间:2012-04-04 01:28:16

标签: ruby-on-rails view controller parent-child nested-forms

我有一个嵌套的表单Parent,它接受Child的属性。 在我的控制器#new中,我做了

  @parent = Parent.new
  @parent.childs.build

并且嵌套表单正常

为了更新父母和孩子,在我的控制器编辑中,我有

  @parent = Parent.find(params[:id])
  @parent.childs.build unless not @parent.childs.empty?

现在,如果我去编辑页面,只会显示父级字段。我的问题是: 如何让Rails知道我想要父母和孩子的表格,而不仅仅是父母?

谢谢

1 个答案:

答案 0 :(得分:4)

使用fields_for帮助程序 - 它几乎可以为您完成所有操作。

<%= form_for @parent do |f| %>
  <%= f.text_field :name %>
  <%= f.fields_for :children, @parent.children do |c| %>
    <%= c.text_field :name %>
  <% end %>
<% end %>