Ruby on rails Can';使用rails 4的content_标记生成选择输入?

Ruby on rails Can';使用rails 4的content_标记生成选择输入?,ruby-on-rails,ruby-on-rails-4,view-helpers,content-tag,Ruby On Rails,Ruby On Rails 4,View Helpers,Content Tag,我使用的是Rails 4.0,我想使用content_tag helper创建以下html 但我一直得到以下HTML: <select id="shared-resources" multiple="multiple" name="contact[resources]" style="width:100%"> <optgroup id="firstgroup" label="firstgroup"> </optgroup> </select>

我使用的是Rails 4.0,我想使用content_tag helper创建以下html

但我一直得到以下HTML:

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

你是对的。它正在工作。这方面有什么一般性的作用吗?为什么要提供原始帮助程序?我刚刚将
.map
添加到
5.times
,然后使用内容标记格式化这些元素,然后连接到一个字符串。
<select id="shared-resources" multiple="multiple" name="contact[resources]" style="width:100%">
  <optgroup id="firstgroup" label="firstgroup">
  </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
      raw 5.times.map { |n| content_tag(:option, value: n) { "Option #{1}" } }.join
   end
end