2009-08-05 5 views
0

Я не понимаю, как я могу сделать этот код с помощью помощника выбора?помощник рельсов для select_tag?

<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 должны быть выбрано все значения списка и значения по умолчанию (пары @cube_name).

спасибо.

ответ

4

Помощник select_tag не будет автоматически устанавливать атрибут selected на предмет, который вы передаете. Он просто создает тег. Используйте что-то вроде:

<%= select_tag("id_of_my_tag", @cube_names.map { |cn| "<option#{cn == cube ? " selected='selected'" : ""}>#{cn}</option>" }.join("")) %> 

Первым параметром является идентификатор выбора тега, то второй список опций (здесь построено отображение имен куба в строки, а затем присоединение массива в одну строку).

Вы можете альтернативно использовать options_for_select построить строку:

<%= select_tag("id_of_my_tag", options_for_select(@cube_names, cube)) %>