2013-02-07 24 views
2

我正在使用Rails 2.3.9應用程序。我需要通過一個類的選項。我這樣做的方式是傳遞html類到options_for_select中的選項不工作Rails 2.3.9

<%= select(:resporg, "hresporg_#{row_id}",options_for_select(["Item11",["Item 2", {:class => 'has-versions'}]]), {}, {:multiple => true})%> 

輸出

<select id="resporg_hresporg_1" name="resporg[hresporg_1][]" multiple="multiple"> 
<option value="Item11">Item11</option> 
<option value="classhas-versions">Item 2</option> 
</select> 

如果檢查上述輸出的類別來了作爲價值。有什麼想法出錯?

回答

1

我必須做手工因爲約束。這this有效期爲軌道> = 3.0.0

在template.html.erb

<select style="width:160px !important;" id="resporg_hresporg_1" name="resporg[hresporg_1][]" multiple="multiple"> 
     <%= opts %> 
</select> 

在助手

def opts 
    str = ''.html_safe 
    ['Item1','Item2'].each { |val| str << content_tag(:option, val, :value => val,:class => val.eql?('Item2') ? "MyClass" : nil) } 
    str.html_safe 
end 
1

this

['display','value',:class => 'option_class'] 

會產生

<option value="value" class="option_class">display</option> 

所以你的情況,我會嘗試這樣的:

["Item 2", "Item2", :class => 'has-versions'] 
+0

這是爲> = V3.0.0 .. Rails 3的這工作很好......我正在使用rails 2.3.9。我無法更新導軌 – AnkitG