我有一個父模型和一個孩子模型。我正嘗試製作一個表單,用於同時創建一個Parent及其關聯的子項。保存資源的嵌套屬性時是否需要數字索引?
在我的表單中,我有一個按鈕來「添加」一個新的Child(一個Parent可以擁有與用戶定義的一樣多的Children)。單擊按鈕時,它會爲表單添加一個隱藏字段,並將其名稱屬性設置爲一些默認值,當表單最終提交時將保存該默認值。我已經通過點擊按鈕事件添加到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
,因爲我必須在單擊「添加」按鈕時才添加隱藏字段。
這裏有什麼正確的方法?