2012-06-25 27 views
5

Tôi đang cố gắng vô hiệu hóa thẻ đã chọn. Các tùy chọn để điền vào các thuộc tính không phải của cơ sở dữ liệu của chúng ta mà là một mảng các số nguyên, do đó collection_select dường như không hoạt động trong tình huống này.đường ray - tắt thẻ chọn

kỹ thuật 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 

Trên đây không phải là những gì tôi muốn. Nó vô hiệu hóa các tùy chọn không phải là thẻ chọn.

kỹ thuật 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 

ở trên không hoạt động. Không có tùy chọn nào bị tắt.

Mặc dù giá trị chính xác hiển thị trong menu thả xuống trong cả hai trường hợp, thẻ chọn không bị vô hiệu hóa và lưu ý rằng trong ví dụ này, tôi vừa đặt thành tắt, nhưng tất nhiên tôi sẽ vô hiệu hóa các thẻ đã chọn.

Trả lời

12

Phương pháp chọn được định nghĩa là

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

rất nỗ lực thứ hai của bạn là gần như chính xác, ngoại trừ việc lựa chọn người khuyết tật phải được xác định trong một hash đó là tham số thứ tư để áp dụng như một thuộc tính đến chọn chính thẻ.

Các vấn đề liên quan