Helper pour liste déroulante (select/option html) dans rails

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.