Ce problème m'a tué. J'ai joué avec les formes complexes de Ryan Bates, mais je n'arrive pas à comprendre mon problème. J'ai ce schéma:Rails Dynamic Multi Model Attributs de formulaire
Location has_many :targets
Target has_many :target_classifications
Tous les emplacements sont indiqués sur la page. Un utilisateur peut créer dynamiquement une cible pour n'importe quel emplacement via jscript, qui ajoute ensuite une ligne de table sous l'emplacement 3 sélectionne (qui contient les classifications disponibles pour la cible) et une valeur cible. Vous pouvez créer n'importe quel nombre de cibles pour n'importe quel emplacement avant de cliquer sur Enregistrer.
J'utilise RJS pour rendre un target_partial, qui a ce code: J'utilise fields_for ainsi:
pour chaque sélectionner. Lorsque sumbmitted, je reçois ce hachage:
"new_targets"=> {"7"=>[{"id"=>"13"}, {"id"=>"15"}, {"value"=>"67", "id"=>""}], "4"=> [{"id"=>"12"}, {"id"=>"15"}, {"value"=>"23", "id"=>""}, {"id"=>"11"}, {"id"=>"16"}, {"value"=>"67", "id"=>""}]},
Ainsi, il sépare chaque cible par emplacement (« 7 » dans ce cas et « 4 »), mais ne se sépare pas chaque cible. Ce que je veux est ceci:
"new_targets"=> {"7"=>[ {"target"=>[{"id"=>"13"}, {"id"=>"15"}, {"tonnes"=>"67"}]} ], "4"=>[ {"target"=>[{"id"=>"12"},{"id"=>"15"},{"tonnes"=>"23"]}, {"target"=>[{"id"=>"11"},{"id"=>"16"},{"tonnes"=>"67"]} ] }
ainsi je peux parcourir chaque cible pour chaque emplacement. Je n'arrive pas à ajouter une nouvelle [cible] accolade dans ma méthode field_for (elle explose), mais c'est ce que je veux faire. Des pensées?
@brad: Je ne suis pas sûr, mais je pense que ces "[]" dans fields_for feront ce que vous voulez – klew