我有一个父模型和一个子模型。我正在尝试制作一个表单来同时创建父级及其关联的子级。
在我的表单中,我有一个按钮来“添加”一个新的孩子(父母可以拥有与用户定义一样多的孩子)。单击该按钮时,它会在表单中添加一个 Child 的隐藏字段,并将其 Name 属性设置为某个默认值,该默认值将在最终提交表单时保存。我一直在通过hidden_field_tag
在按钮单击事件的表单中添加一个来做到这一点:
hidden_field_tag "parent[children_attributes][][name]", "something"
这创造了:
<input id="children_attributes__name" name="parent[children_attributes][][name]" type="hidden" value="something">
这似乎有效!但我担心空虚[]
。我不确定它是什么或它为什么起作用,我只是发现它确实如此。使用安全吗?
当我查看使用创建的表单字段时fields_for
,我看到它为该中间数组/哈希(无论它是什么)设置了一个数字索引,如下所示:
<input id="children_attributes_0_name" name="parent[children_attributes][0][name]" type="text">
不幸的是,我不能使用fields_for
,因为我必须在单击“添加”按钮时添加隐藏字段。
这里的正确方法是什么?