我有一个Parent模型和一个Child模型。我正在尝试制作一个用于同时创建父母及其相关子女的表格。
在我的表单中,我有一个“添加”新孩子的按钮(父母可以拥有与用户定义的孩子一样多的孩子)。单击该按钮时,它会将一个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
,因为只有在点击“添加”按钮时才需要添加隐藏字段。
这里有什么正确的方法?
答案 0 :(得分:0)
你的第二个问题“这里的方法是什么?”
我总是使用Ryan Bate's nested form。为你排序所有这些东西。
您的第一个问题“使用安全吗?”
我不知道。如果我必须手动完成,我确保它在[]中的唯一值。
我认为宝石使用时间戳来保持它的独特性。