说明错误的代码来自Redmine插件。 _form.html.erb
部分包含此fields_for
:
<%= f.fields_for :information do |information| %>
<p><%= information.text_field :middlename, :label => l(:label_people_middlename) %></p>
<p><%= f.text_field :lastname, :required => true %></p>
然后其中一个字段声明了一个标签:
<p><%= information.select :gender, Person.get_genders, :label => l(:label_people_gender)%></p>
生成此HTML:
<p><label for="person[information_attributes]_gender">Gender</label>
<select name="person[information_attributes][gender]" id="person_information_attributes_gender">
<option selected="selected" value="0">Male</option>
<option value="1">Female</option>
</select></p>
<label for="">
值中包含[]
而不是下划线_
,因此它与目标字段的id="person_information_attributes_gender"
不匹配。单击标签不会将键盘焦点置于<select>
字段中。
这是Rails 4.2.8中的已知错误吗?是否有可用的修复或解决方法 - 除了在原始HTML中编写<label>
?
答案 0 :(得分:0)
如果您尝试使用实际的Rails标签,而不是将标签作为选项传递给“选择”,会发生什么? (老实说,我之前没有看到label
这样的选项上的<p>
<%= information.label :gender, l(:label_people_gender) %>
<%= information.select :gender, Person.get_genders %>
</p>
选项。像这样:
class