Je suis en train d'apprendre les rails et j'ai rencontré quelques difficultés. Permettez-moi de commencer par une simple panne de ma demande - c'est un livre de recettes (de sortes)Utilisation de plusieurs éléments de collection_select sur un formulaire avec plusieurs modèles
- Recettes ont un ou plusieurs ingrédients (thon, rate, etc.)
- Ingrédients ont une unité (onces, livres, etc.)
- unités sont tirées d'une table de recherche
Voici une capture d'écran pour aider à clarifier les choses plus: Form Mockup
Son C'est mon problème: mes noms d'éléments collection_select doivent être quelque chose comme unit[id][]
Au lieu de cela, ils sont tous simplement nommés unit[id]
. Voici l'extrait que je utilise:
collection_select( :unit, :id, @units, :id, :name, options = { :prompt => "Please Select", :class => "ingredient_unit", :name => "unit[][]", :id => "unit:" + i.to_s() } );
Cependant, voici ce qu'elle est délivrer en sortie:
<select id="unit_id" name="unit[id]"> <option value="">Please Select</option> <option value="1">Ounces</option> </select> ...
Maintenant, en php, ces listes déroulantes serait nommé unit[]
. Est-ce que je vais à ce sujet dans le mauvais sens?
Merci pour l'aide
Merci pour le lien, il a beaucoup aidé. En ce qui concerne le paramètre ': name', c'était plus une hypothèse. Avec d'autres helpers de formulaire, vous pouvez passer ': name' pour définir le nom de l'entrée de texte ou autre. En ce qui concerne mon objectif du formulaire, c'était de créer une nouvelle recette et d'assigner des ingrédients à cette recette, ainsi que des unités à chaque ingrédient. Comme pour la remarque 'unit []': en PHP, si vous voulez spécifier un tableau d'éléments de formulaire, vous ajoutez '[]' à la fin du nom de l'élément et ensuite '$ _POST' traitera' $ _POST [" unité "]' en tant que tableau. J'espère que ça aide. –
Juste un avertissement, le code de certaines des choses dont il parle a été remplacé par des attributs imbriqués. http://railscasts.com/episodes/196-nested-model-form-part-1 –