2011-01-12 13 views
13

Nella mia applicazione nella registrazione degli utenti Ho un selettore paese ..Prompt in select_tag

<%= select(:user, :country, options_for_select(@COUNTRIES)) %> 

E voglio aggiungere un prompt come primo valore di default (qualcosa come "--- seleziona la nazione --- "). Dove e come dovrei inserire questa opzione?

risposta

2

Molto semplice:

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>true) 

per il prompt "Selezionare", o questo per il vostro testo personalizzato:

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>"Select country") 

Si noti inoltre che @COUNTRIES è errato, una variabile di istanza deve essere in minuscolo - @countries, un contant sarebbe solo COUNTRIES.

0

Nel caso in cui qualcuno si riferisca a questo, provare a scrivere il prompt all'esterno options_for_select.

invece di

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>true)

tentativo,

select(:user, :country, options_for_select(@COUNTRIES)),{:prompt=>"Your message here"}

funziona perfettamente per select_tag pure. Inoltre, sono d'accordo con @ gunn con la convenzione di denominazione.

+0

Come diavolo funziona? 'select(), {}' mi sembra un errore di sintassi. – PJSCopeland

+0

@Patrick questo era tornato nel 2011, ma se ho scritto questa risposta, penso che fosse giusto nel corso della giornata. Sto scrivendo un sacco di Nodejs e PHP. – ktkaushik

4

Si può anche dare personalizzata valore di prompt come questo

select(:user, :country, options_for_select(@COUNTRIES), :prompt=>"select User name") 
+0

Come posso impostare il valore sull'opzione prompt, per impostazione predefinita è "", cosa succede se voglio un valore 0 per quello – vishB

0
collection_select(:product, 
    :category_id, 
    Category.all,  
    :id,  
    :title,  
    {:prompt => true} 
) 

collection_select(:product,  
    :category_id,  
    Category.all,  
    :id,  
    :title,  
    {:include_blank => 'Please Select'} 
) 

entrambe queste risultato nella stessa html, ma la prima non includerà il 'Seleziona' opzione quando si torna a modificare il prodotto creato in precedenza