Я использую следующее, чтобы позволить моим пользователям выбирать свой пол в их профиле.
<%= f.select (:sex, %w{ Male Female }) %>
Как я создал бы пустую стоимость, что список примет значение по умолчанию к тому, если ничто не было передано user.sex столбцу? Я просто передаю штекер или розетку как строка.
Цель, я хочу пустое значение, таким образом, проверка может удостовериться, что они знают, что должны выбрать его.
Я пытался использовать 'подсказку' в качестве строки. Но в представленном выводе, не появлялась новая подсказка опции. 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.