2012-06-25 18 views
5

Bir seçme etiketini devre dışı bırakmaya çalışıyorum. Bizim veritabanı özniteliklerimizi doldurma seçenekleri yerine bir dizi tamsayılar, bu yüzden collection_select bu durumda işe yaramaz.raylar - select etiketini devre dışı bırak

tekniği 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 

yukarıda ne istiyorum değil. Seçme etiketindeki seçenekleri devre dışı bırakır.

tekniği 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 

yukarıdaki çalışmaz. Hiçbir seçenek devre dışı bırakılmadı.

Her iki durumda da doğru değerler açılırken, seçim etiketi devre dışı bırakılır ve bu örnekte, yalnızca devre dışı bırakmayı true olarak ayarladığımı, ancak elbette seçim etiketlerini koşullu olarak devre dışı bırakacağımı unutmayın. Engelli seçenek bir özellik olarak uygulamak için dördüncü parametre olan bir karma belirtilmelidir dışında

cevap

12

seçme yöntemi

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

olarak tanımlanır böylece ikinci girişim, neredeyse doğruydu etiketi seç.

İlgili konular