嵌套表单更新has-many parent并创建一个* single *子对象

时间:2016-05-24 00:46:16

标签: ruby-on-rails has-many nested-form-for

我想要一个表单一次编辑一个新的子对象和父对象(具有很多关系)。如果我使用@child = @parent.children.new在控制器中创建一个新子项,则以下方法有效,但它会显示所有现有子项的输入字段。

<%= simple_form_for @parent do |p| %>
  <%= p.input :parent_attribute %>
  <%= p.simple_fields_for :children do |c| %>
    <%= c.input :child_attribute %>
  <% end %>
<% end %>

如何仅为创建的单个新子项显示表单输入字段?

1 个答案:

答案 0 :(得分:1)

如果要在父表单中显示新的单个子表单,可以执行以下操作:

simple_fields_for

请注意,您必须同时指定子模型名称以及子模型对象fields_for(或<%= m.simple_form_for @child do |c| %> <%= c.input :child_attribute %> <% end %> )以引用特定模型对象。

如果您只想显示新的单个子表单,可以执行以下操作:

{{1}}

这将仅为新的子记录创建表单。