我不明白如何使用select帮助程序执行该代码?
<select name="cube_name">
<% @cube_names.each do |cube| %>
<option value="<%= cube %>" <% if @cube_name == cube %> selected="selected"<% end %>><%= cube %></option>
<% end %>
</select>
我有一个列表(@cube_names),并希望HTML选择框宽度列表的所有值和默认值(param @cube_name)应该被选中。
感谢。
答案 0 :(得分:4)
select_tag
帮助器不会自动设置您传递的项目的selected
属性。它只是构建标签。使用类似的东西:
<%= select_tag("id_of_my_tag", @cube_names.map { |cn| "<option#{cn == cube ? " selected='selected'" : ""}>#{cn}</option>" }.join("")) %>
第一个参数是select标签的id,第二个是选项列表(这里通过将多维数据集名称映射到字符串,然后将数组连接成一个字符串来构建)。
您也可以使用options_for_select
来构建字符串:
<%= select_tag("id_of_my_tag", options_for_select(@cube_names, cube)) %>