嵌套形式更新有多个父对象并创建一个*单个*子对象
nested form to update has-many parent AND create a *single* child object
我想要一个表单来一次性编辑单个新的子对象和父对象(在有很多关系的情况下)。如果我使用 @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 %>
如何只显示创建的单个新子项的表单输入字段?
如果要在父窗体中显示新的单个子窗体,可以这样做:
<%= simple_form_for @parent do |p| %>
<%= p.input :parent_attribute %>
<%= p.simple_fields_for :child, @child do |c| %>
<%= c.input :child_attribute %>
<% end %>
<% end %>
请注意,您必须指定子模型名称以及子模型对象以 simple_fields_for
(或 fields_for
)引用特定模型对象。
如果只想显示新的单子窗体,可以这样做:
<%= m.simple_form_for @child do |c| %>
<%= c.input :child_attribute %>
<% end %>
这将为新的子记录创建表单。
我想要一个表单来一次性编辑单个新的子对象和父对象(在有很多关系的情况下)。如果我使用 @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 %>
如何只显示创建的单个新子项的表单输入字段?
如果要在父窗体中显示新的单个子窗体,可以这样做:
<%= simple_form_for @parent do |p| %>
<%= p.input :parent_attribute %>
<%= p.simple_fields_for :child, @child do |c| %>
<%= c.input :child_attribute %>
<% end %>
<% end %>
请注意,您必须指定子模型名称以及子模型对象以 simple_fields_for
(或 fields_for
)引用特定模型对象。
如果只想显示新的单子窗体,可以这样做:
<%= m.simple_form_for @child do |c| %>
<%= c.input :child_attribute %>
<% end %>
这将为新的子记录创建表单。