J'apprends les rails et je suis aux prises avec cela depuis plus d'une journée maintenant et je n'arrive pas à comprendre comment faire fonctionner ça. Je veux une boîte de sélection dans mon formulaire qui peut sélectionner plusieurs éléments. Je travaille avec ce code:forme multiple select
<div class="field">
<%= f.label :products %><br />
<%= f.select :products, {"A"=>1, "B"=>2, "C"=>3, "D"=>4},{},:size=>5,:multiple=>true %>
</div>
Cela fonctionne bien et produit ce HTML:
<div class="field">
<label for="script_products">Products</label><br />
<select id="script_products" multiple="multiple" name="script[products][]" size="5">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option></select>
</div>
Ce que je peux comprendre comment les résultats sont envoyés/stockés. À mon avis pour l'action "show", si j'imprimer simplement: produits que je reçois ceci:
Produits: --- - '1' - '2' - '3'
Si j'imprimer : products.inspect Je reçois ceci:
Produits: "--- \ n '1' \ n '2' \ n '3' \ n"
et la classe est une chaîne. Je pense qu'il serait stocké comme un tableau, mais je ne peux pas le faire fonctionner. Je ne sais pas d'où viennent les tirets ou les nouvelles lignes.
Vous imprimez le résultat de 'params [: script] [: products]'? – nathanvda
Je suis en train de faire ceci: <% = @ script.products%> –
C'était le code généré par l'échafaudage. À l'origine dans la nouvelle vue, c'était un champ de texte, je l'ai changé en une boîte de sélection multiple. Donc, je pense que je dois changer de modèle pour refléter le fait que je veux stocker un tableau? Mais je ne sais pas exactement. –