Как я устанавливаю пустое значение для поля формы f.select

Я использую следующее, чтобы позволить моим пользователям выбирать свой пол в их профиле.

<%= f.select (:sex, %w{ Male Female }) %>

Как я создал бы пустую стоимость, что список примет значение по умолчанию к тому, если ничто не было передано user.sex столбцу? Я просто передаю штекер или розетку как строка.

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

57
задан 15 December 2010 в 00:40

1 ответ

Я пытался использовать 'подсказку' в качестве строки. Но в представленном выводе, не появлялась новая подсказка опции. select_tag метод ищет только символ. Это, кажется, имеет место для: include_blank также. Проверьте options.delete:

  def select_tag(name, option_tags = nil, options = {})
    option_tags ||= ""
    html_name = (options[:multiple] == true && !name.to_s.ends_with?("[]")) ? "#{name}[]" : name

    if options.include?(:include_blank)
      include_blank = options.delete(:include_blank)

      if include_blank == true
        include_blank = ''
      end

      if include_blank
        option_tags = content_tag(:option, include_blank, value: '').safe_concat(option_tags)
      end
    end

    if prompt = options.delete(:prompt)
      option_tags = content_tag(:option, prompt, value: '').safe_concat(option_tags)
    end

    content_tag :select, option_tags, { "name" => html_name, "id" => sanitize_to_id(name) }.update(options.stringify_keys)
  end

Также примечание, что: include_blank и: подсказка будет опциями выбора или select_tag, не options_for_select.

0
ответ дан 1 November 2019 в 15:36

Другие вопросы по тегам:

Похожие вопросы: