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>

如果您检查上述输出,则该类将作为值出现。关于出了什么问题的任何想法?

4

2 回答 2

1

据此,_

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

会产生

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

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

["Item 2", "Item2", :class => 'has-versions']
于 2013-02-07T12:52:00.927 回答
1

由于限制,我必须手动执行此操作。这rails >= 3.0.0 有效

在模板.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
于 2013-02-07T14:44:33.557 回答