f.select 양식 필드에 공백 값을 설정하는 방법
사용자가 프로필에서 성별을 선택할 수 있도록 다음을 사용하고 있습니다.
<%= f.select (:sex, %w{ Male Female }) %>
user.sex 열에 아무것도 전달되지 않은 경우 목록의 기본값이되는 빈 값을 어떻게 만들 수 있습니까? 나는 단순히 남성 또는 여성을 끈으로 전달하고 있습니다.
목적은 빈 값을 원하므로 유효성 검사를 통해 선택해야 함을 인식 할 수 있습니다.
목표에 따라 두 가지 가능성이 있습니다.
include_blank
<%= f.select (:sex, %w{ Male Female }, :include_blank => true) %>
여기에는 항상 선택 항목에 빈 옵션이 포함되어 사용자가 편집 양식에서이 값을 볼 경우 값을 다시 빈 값으로 설정할 수 있습니다.
prompt
<%= f.select (:sex, %w{ Male Female }, :prompt => "Gender...") %>
여기에는 필드가 아직 설정되지 않은 한 지정된 프롬프트 값이 포함됩니다. 예를 들어 편집 양식에있는 경우 프롬프트가 나타나지 않도록 사용자에게 값을 선택해야 함을 상기시킬 필요가 없습니다.
다음과 같이 할 수 있다고 생각합니다.
<%= f.select (:sex, %w{ Male Female }, {:include_blank => 'None Specified'} ) %>
Rails 4에서는 다음과 같은 프롬프트를 얻을 수 있습니다.
<%= f.select :gender, %w{ Male Female }, {:prompt => "Gender..."} %>
그것은 간단한 형태로 나를 위해 일합니다.
당신은 함께 간다
<%= f.select :gender, %w{ Male Female }, :include_blank => true %>
'프롬프트'를 문자열로 사용하려고했습니다. 그러나 렌더링 된 출력에서 새 옵션 프롬프트가 나타나지 않았습니다. 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 및 : prompt는 options_for_select가 아니라 select 또는 select_tag의 옵션입니다.
참고 URL : https://stackoverflow.com/questions/4444523/how-do-i-set-a-blank-value-for-an-f-select-form-field
'program tip' 카테고리의 다른 글
jQuery, .each를 사용하여 클래스의 각 요소 ID를 얻습니까? (0) | 2020.12.14 |
---|---|
JPA 엔티티에 equals () 및 hashCode () 메소드를 작성해야합니까? (0) | 2020.12.14 |
각 그룹 내에서 지연 변수를 만드는 방법은 무엇입니까? (0) | 2020.12.14 |
ADB를 통해 연결된 기기의 Android OS 버전 가져 오기 (0) | 2020.12.14 |
dotnet run 또는 dotnet watch with development environment from command line? (0) | 2020.12.14 |