2012-06-25 14 views
5

Próbuję wyłączyć znacznik select. Opcje do wypełnienia nie atrybutów bazy danych, ale raczej tablica liczb całkowitych, więc collection_select nie działa w takiej sytuacji.szyn - wyłącz znacznik wyboru

technika 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 

Powyższe nie jest to, co chcę. Wyłącza opcje, a nie znacznik wyboru.

technika 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 

Powyższe nie działa. Żadna z opcji nie jest wyłączona.

Podczas gdy prawidłowe wartości są wyświetlane w rozwijanym menu w obu przypadkach, znacznik select nie jest wyłączony, i zauważ, że w tym przykładzie po prostu ustawiłem wartość disabled na true, ale oczywiście warunkowo wyłączę tagi select.

Odpowiedz

12

metody Select jest zdefiniowany jako

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

więc druga próba była niemal prawidłowa, oprócz tego, że opcja wyłączona musi być określona w haszyszu, który jest czwarty parametr w celu zastosowania jako atrybut do wybierz sam tag.

Powiązane problemy