Rails 3 - хелпер select_tag - пустой тег опции - PullRequest
8 голосов
/ 01 марта 2011

У меня есть select_tag из массива @users, который я использую для поиска. Когда пользователь впервые попадает на страницу, я бы хотел, чтобы он отображал пустой или пользовательский тег, а не первый элемент в массиве?

Это опция, использующая хелпер select_tag? Чтобы вставить пустой "" вариант?

Пока что мой помощник:

<%= select_tag :search_user, options_from_collection_for_select(@users, "id", "name"), :class => 'submittable'%> 

Ответы [ 4 ]

17 голосов
/ 01 марта 2011

Вы можете использовать опцию :include_blank => true, как описано здесь .

3 голосов
/ 14 марта 2013

Я думаю, что правильный путь -

: prompt => "ваш текст"

0 голосов
/ 17 марта 2014

Ruby on Rails 4.0.4 ActionView :: Helpers :: FormOptionsHelper

: prompt - установить в значение true или строку приглашения. Когда выбран элемент

пока не имеет значения, это добавляет опцию с общим

подсказка - «Пожалуйста, выберите» - или заданная строка подсказки.

select(“post”, “person_id”, Person.all.collect {|p| [ p.name, p.id ] }, {prompt: 'Select Person'})

может стать:

<select name="post[person_id]">
  <option value="">Select Person</option>
  <option value="1">David</option>
  <option value="2">Sam</option>
  <option value="3">Tobias</option>
</select>
0 голосов
/ 01 марта 2011

Итак, вместо того, чтобы использовать метод options_from_collections_for_select, я смог вставить элемент в мой массив, используя options_for_select. По сравнению с приведенным выше кодом, я вставил «все» в приведенный ниже фрагмент.

<%= select_tag :search_user, options_for_select(@users.collect{ |user| [user.name, user.id] }.insert(0,"Everyone")), :class => 'submittable'%>
...