Rails select helper - По умолчанию выбрано значение, как? - PullRequest
174 голосов
/ 08 марта 2009

Вот код, который я сейчас использую:

<%= f.select :project_id, @project_select %>

Как изменить его так, чтобы при загрузке страницы его значение по умолчанию равнялось params[:pid]?

Ответы [ 14 ]

0 голосов
/ 11 июня 2016

Уже объяснили, попробую привести пример

пусть список выбора будет

select_list = { eligible: 1, ineligible: 0 }

Таким образом, следующий код приводит к

<%= f.select :to_vote, select_list %>

<select name="to_vote" id="to_vote">
  <option value="1">eligible</option>
  <option value="0">ineligible</option>
</select>

Таким образом, чтобы сделать параметр выбранным по умолчанию, мы должны использовать selected: значение .

<%= f.select :to_vote, select_list, selected: select_list.can_vote? ? 1 : 0 %>

если can_vote? возвращает true, он устанавливает selected: 1 , тогда будет выбрано первое значение, а второе.

select name="driver[bca_aw_eligible]" id="driver_bca_aw_eligible">
  <option value="1">eligible</option>
  <option selected="selected" value="0">ineligible</option>
</select>

если опции выбора - это просто список массивов, а не hast, тогда выбранным будет просто значение, которое будет выбрано, например, если

select_list = [ 'eligible', 'ineligible' ]

Теперь выбранный просто займет

<%= f.select :to_vote, select_list, selected: 'ineligible' %>
0 голосов
/ 30 декабря 2014

Если попытаться напечатать объект f, то вы увидите, что существует объект f.object, который можно проверить для получения выбранного элемента (применимо для всех версий рельсов> 2.3)

logger.warn("f #{f.object.inspect}")

Итак, используйте следующий скрипт для получения правильной выбранной опции:

:selected => f.object.your_field 
0 голосов
/ 05 октября 2014

Кроме того, вы можете установить атрибут: project_id в контроллере, поскольку первый аргумент f.select извлекает этот конкретный атрибут.

0 голосов
/ 08 марта 2009

Это должно работать для вас. Он просто передает {:value => params[:pid] } в переменную html_options.

<%= f.select :project_id, @project_select, {}, {:value => params[:pid] } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...