将html类传递给options_for_select中的选项不工作Rails 2.3.9

时间:2013-02-07 12:41:02

标签: ruby-on-rails ruby ruby-on-rails-2

我正在开发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>

如果检查上面的输出,则该类将作为值。什么出错了?

2 个答案:

答案 0 :(得分:1)

根据this

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

将产生

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

所以在你的情况下,我会尝试这个:

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

答案 1 :(得分:1)

由于约束,我必须手动执行此操作。 this对rails&gt; = 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