Rails 4 Выберите тег — сообщение с приглашением

#ruby-on-rails #ruby-on-rails-4 #html-select

#ruby-on-rails #ruby-on-rails-4 #html-выберите

Вопрос:

Я хочу добавить пустое сообщение с приглашением для моего выпадающего списка Select Gender и разрешить выбор предыдущего значения из базы данных, если оно выбрано и сохранено.

 <%= f.select :gender, "<option value='1'>Male</option><option value='2'>Female</option>".html_safe, prompt: "Select Gender" %>
  

С помощью приведенного выше кода сообщение с приглашением, похоже, не добавляется. Когда я пытаюсь include_blank , он добавляет пустое значение, но не использует текст приглашения.

Ответ №1:

Попробуйте это

 <%= f.select(:gender, options_for_select([['Male', 1],['Female', 2]],@user.gender), {:include_blank => 'Select Gender'}, { :class => 'form-control' }) %>
  

Комментарии:

1. для чего используется опция prompt? разве это не должно устанавливать пустое значение?

2. prompt и include_blank оба выполняют одинаковую работу, единственное отличие заключается в том, что если значение уже установлено, prompt не будет отображать пустое значение. Таким образом, вам не нужно передавать выбранное значение в options_for_select hash.

3. Таким образом, вы можете написать свой помощник по выбору, например <%= f.select(:gender, options_for_select([[‘Male’, 1], [‘Female’, 2]]), {:prompt => ‘Select Gender’}, { :class => ‘form-control’ }) %>