无法使用带有rails 4的content_tag构建选择输入?

时间:2014-10-14 11:55:42

标签: ruby-on-rails ruby-on-rails-4 view-helpers content-tag

我正在使用Rails 4.0,我想使用 content_tag 帮助程序创建以下html。

<select multiple="multiple" id="shared-resources" style="width:100%" name="contact[resources]">
    <optgroup label="firstgroup" id="firstgroup">
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
      <option value="4">Option 4</option>
      <option value="4">Option 4</option>
    </optgroup>            
</select> 

我使用以下方法创建了它:

content_tag(:select, multiple: "multiple", id: "shared-resources", style: "width:100%", :name => "contact[resources]") do
  content_tag(:optgroup, label: "firstgroup", id: "firstgroup") do 
    5.times do |n|
      content_tag(:option, value: n) do 
        "Option #{n}"
      end
    end
  end
end

但我不断收到以下HTML:

<select id="shared-resources" multiple="multiple" name="contact[resources]" style="width:100%">
  <optgroup id="firstgroup" label="firstgroup">
  </optgroup>
</select>

我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:2)

请尝试这个,它应该工作:

content_tag(:select, multiple: "multiple", id: "shared-resources", style: "width:100%", :name =>      "contact[resources]") do
   content_tag(:optgroup, label: "firstgroup", id: "firstgroup") do
      raw 5.times.map { |n| content_tag(:option, value: n) { "Option #{1}" } }.join
   end
end