2009-12-22 5 views

Répondre

162

De nombreux assistants Rails prennent plusieurs arguments de hachage. La première est généralement les options pour contrôler l'aide elle-même, et le second est le html_options où vous spécifions ids personnalisés, des 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 la multiple '= {}' dans la liste des paramètres. Pour l'utiliser, la première série d'options que vous spécifiez doit effectivement être encadré par des accolades:

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

Si vous n'avez pas d'options pour spécifier en plus de la classe HTML, il suffit de mettre un espace réservé de hachage vide:

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

documentation de l'API supplémentaire est disponible à l'adresse: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

+0

Ah, j'aurais dû lire la documentation un peu plus près :) – tybro0103

+0

Drew, belle réponse. Effacer tous mes doutes concernant collection_select. –

+0

Voici une extension de cette réponse montrant comment modifier le style .css et utiliser les événements jQuery onchange '<% = collection_select (: question,: texte, Question.all,: id,: text, {: prompt => 'Select Question. .. '}, {: class =>' input ',: nom =>' normalSelect ',: id =>' normalSelect ',: style =>' largeur: 50% ',: onchange => "$ (' # accordéon ('activer', 2); $ ('# aveugle'). show ('aveugle', 500) "})%>' – wantrapreneur

8
= f.collection_select :category_id, Category.order(:name), :id, :name, {}, {class: "store-select"} 
Questions connexes