在Rails表单选择框中设置HTML id属性

Cor*_*len 3 ruby-on-rails ruby-on-rails-3

如何在下拉框中设置id属性?

这是我的表格中的一部分:

<%= f.fields_for :items do |builder| %>
  <%= builder.label :description %><br />
  <%= builder.text_field :description %><br />
  <%= builder.label :material %><br />
  <%= builder.select :material, @letters.map { |l| [l.material, l.material] }, :id => "material_field" %><br />
  <%= builder.label :height %><br />
  <%= builder.select :height, @letters.map { |l| [l.height, l.height] }, :id => "height_field" %><br />
  <%= builder.label :thickness %><br />
  <%= builder.select :thickness, @letters.map { |l| [l.thickness, l.thickness] }, :id => "thickness_field" %><br />

  <%= builder.label :quantity %><br />
  <%= builder.text_field :quantity, :id => "quantity_field" %>
  <%= builder.link_to_remove "Remove this item" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

:id =>"quantity_field"方法适用于文本字段,但不适用于选择字段.查看HTML源我获得了材料文本框的"estimate_items_attributes_0_material"id.

这是一个奇怪的不一致.任何帮助将不胜感激.

Ale*_*ski 27

可能的选项和html选项之间有一个参数.所以你必须这样做:

<%= builder.select :thickness, @letters.map { |l| [l.thickness, l.thickness] }, {}, :id => "thickness_field" %>
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到这些文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-select

这个也很有帮助:http: //api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select