0

親モデルと子モデルがあります。親とそれに関連付けられた子を同時に作成するためのフォームを作成しようとしています。

私のフォームには、新しい子を「追加」するためのボタンがあります (親は、ユーザーが定義した数の子を持つことができます)。ボタンがクリックされると、子の非表示フィールドがフォームに追加され、その Name 属性がデフォルトに設定されます。これは、フォームが最終的に送信されるときに保存されます。hidden_field_tagボタンクリックイベントでフォームにa を追加することで、これを行ってきました。

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

2 番目の質問「ここでの正しいアプローチは何ですか?」

私はいつもRyan Bate のネストされたフォームを使用しています。この種のものをすべて整理します。

最初の質問「安全に使用できますか?」

知らない。手動で行う必要がある場合は、[] で一意の値であることを確認します。

私が信じている宝石は、タイムスタンプを使用して一意に保ちます。

于 2013-07-11T17:16:38.513 に答える