0

我有一个父模型和一个子模型。我正在尝试制作一个表单来同时创建父级及其关联的子级。

在我的表单中,我有一个按钮来“添加”一个新的孩子(父母可以拥有与用户定义一样多的孩子)。单击该按钮时,它会在表单中添加一个 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,因为我必须在单击“添加”按钮时添加隐藏字段。

这里的正确方法是什么?

4

1 回答 1

0

您的第二个问题“这里的正确方法是什么?”

我总是使用Ryan Bate 的嵌套形式。为你整理出所有这些东西。

您的第一个问题“使用安全吗?”

我不知道。如果我必须手动执行此操作,我会确保它在 [] 中具有唯一值。

我相信的宝石使用时间戳来保持它的独特性。

于 2013-07-11T17:16:38.513 回答