web-dev-qa-db-fra.com

Comment définir les options HTML pour collection_select dans Rails?

Je n'arrive pas à trouver la syntaxe pour ajouter une classe à une balise de sélection générée par Rails collection_select . De l'aide?

78
tybro0103

De nombreux Rails helpers prennent plusieurs arguments de hachage. Le premier est généralement les options pour contrôler l'assistant lui-même, et le second est les html_options où vous spécifiez les identifiants personnalisés, les classes, etc.

La définition de la méthode ressemble à ceci:

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})

Vous remarquerez le multiple '= {}' dans la liste des paramètres. Pour l'utiliser, le premier ensemble d'options que vous spécifieriez doit en fait être placé entre accolades:

collection_select(:user, :title, UserTitle.all, :id, :name, {:Prompt=>true}, {:class=>'my-custom-class'})

Si vous n'avez aucune option à spécifier en plus de la classe html, mettez simplement un espace réservé de hachage vide:

collection_select(:user, :title, UserTitle.all, :id, :name, {}, {:class=>'my-custom-class'})

Une documentation API supplémentaire est disponible sur: http://apidock.com/Rails/ActionView/Helpers/FormOptionsHelper/collection_select

176
Drew Blas
= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"}
8
drjorgepolanco