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

时间:2011-09-02 06:24:42

标签: 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 %>

:id =&gt; “quantity_field”方法适用于文本字段,但不适用于选择字段。查看HTML源我获得了材料文本框的“estimate_items_attributes_0_material”id。

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

1 个答案:

答案 0 :(得分:26)

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

<%= builder.select :thickness, @letters.map { |l| [l.thickness, l.thickness] }, {}, :id => "thickness_field" %>

您可以在此处找到该文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-select

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