2012-06-25 14 views
5

Sto provando a disabilitare un tag select. Le opzioni per riempire i nostri attributi non del database, ma piuttosto una matrice di numeri interi, quindi collection_select non sembra funzionare in questa situazione.rotaie - disabilita il tag select

tecnica 1:

select_tag(:zev_qty, options_for_select(display_quantity(@order_subject_supplies_request.site), {:disabled => display_quantity(@order_subject_supplies_request.site)})) 

def display_quantity(site) 
    if site 
    site.open_site? ? [[0,0],[1,1],[2,2]] : [[0,0],[1,1]] 
    else 
    [] 
    end 
end 

È possibile che questo non è quello che voglio. Disabilita le opzioni non il tag select.

tecnica 2:

f.select(:zev_qty, display_quantity(@order_subject_supplies_request.site), {:disabled => true}) 
    def display_quantity(site) 
    if site 
     site.open_site? ? [0,1,2] : [0,1] 
    else 
     [] 
    end 
    end 

È possibile che questo non funziona. Nessuna delle opzioni è disabilitata.

Mentre i valori corretti vengono visualizzati nel menu a discesa in entrambi i casi, il tag select non è disabilitato e si noti che in questo esempio, ho appena disabilitato true, ma ovviamente disabiliterei condizionatamente i tag select.

risposta

12

Il metodo di selezione è definito come

f.select(method, choices, options = {}, html_options = {}), 

in modo che il secondo tentativo era quasi bene, tranne che l'opzione disabile deve essere specificato in un hash che è il quarto parametro per applicare come un attributo al seleziona il tag stesso.

Problemi correlati