Vous savez comment faire une liste déroulante avec rubyonrails ?
La faire à la main ? L' helper Select ?
Et non ! Il existe un helper spécifique bien plus intéressant mais il fallait le trouver, il s'agit de 'collection_select'.
Voici comment l'utilisé :
Par exemple afficher la liste des familles de produit dans la fiche produit :
<%= collection_select :product, :family_id, @families, :id, :name
%>
Dans l'ordre : l'objet, l'attribut, le tableau d'élément, l'attribut 'value' de la balise <option> et le innertext de la balise <option>, vous pouvez aussi rajouter des paramêtres pour inclure un ligne blanche :
<%= collection_select :product, :family_id, @families, :id, :name,
{ :include_blank => "- Aucune Famille -" } %>
Vous pouvez encore surcharger le comportement de l'élément selectionné. Dans l'exemple ci-dessous 1 est l'id contenu dans 'value' de <option> de l'élément qui sera selectionné.
<%= collection_select :product, :family_id, @families, :id, :name,
{ :include_blank => "- Aucune Famille -", :selected => 1 }
%>
En espérant que ça en aide quelques uns.