помощник рельсы для select_tag? - PullRequest
0 голосов
/ 05 августа 2009

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

<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).

спасибо.

1 Ответ

4 голосов
/ 05 августа 2009

Помощник 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)) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...