Ruby on rails RubyonRails:如何更改选择列表中选项的BG颜色
我想从模型中提取颜色列表,并将颜色选择列表放在视图中。 选项的值为颜色代码。我想将选项的背景色更改为其值。下面是我尝试过的两种方法,但结果是它改变了整个选择列表的颜色,而不是单个选项的颜色Ruby on rails RubyonRails:如何更改选择列表中选项的BG颜色,ruby-on-rails,list,select,Ruby On Rails,List,Select,我想从模型中提取颜色列表,并将颜色选择列表放在视图中。 选项的值为颜色代码。我想将选项的背景色更改为其值。下面是我尝试过的两种方法,但结果是它改变了整个选择列表的颜色,而不是单个选项的颜色 <p> <b>Background color</b><br /> collection_select(:setting, :bg_color, @colors, :code, :name, options ={:prompt
<p>
<b>Background color</b><br />
collection_select(:setting, :bg_color, @colors, :code, :name,
options ={:prompt => "-Select a color"}, html_options = {:style => "background-color: #3f3"})
</p>
<p>
<b>New Background color</b><br />
select_tag("setting[bg_color]", "<option>-Select a color</option>" +
options_from_collection_for_select(@colors, :code, :name, html_options = {:style => "background-color: #3f3"}))
</p>
我希望它能产生类似于:
<option value='color_code' style='background-color: color_code' >color_name</option>
这样,用户也可以看到选项中的颜色
无论如何,我们可以自定义选项吗
提前感谢。rails帮助程序不支持类似的html\u选项。不过,您可以创建自己的助手方法
def options_with_colors(colors)
colors.collect do |color, code|
"<option value='#{code}' style='background-color:#{code};'>#{color}</option> "
end.join
end
@colors = ["Red" => "#f00", "Blue" => "blue"]
select_tag("setting[bg_color]", options_with_colors(@colors))