44 votes

Ruby on Rails : comment utiliser un espace réservé par défaut dans un select_tag ?

 <%= select_tag(:services, 
                       options_from_collection_for_select(Service.all, :id, :name))%>

Et il affiche tous les services...

Mais je veux que ce soit quelque chose comme :

 Select a service
Service1
Service2
Service3
Service4

15voto

Zabba Points 26372
<%= select_tag(:services, 
               Service.all.collect { |c| [c.id, c.name] }.
               insert(0, "Select a Service"))%>

Comme répondu à la question, il s'agit de Rails 2.3. Pour Rails 3, voir la réponse de Prathan Thananart.

14voto

Will Points 412

La meilleure façon de le faire serait d'utiliser le paramètre :prompt. Quelque chose comme:

 select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:prompt => 'Select Person'})

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X