如何为f.select表单字段设置空白值

我正在使用以下来允许我的用户在他们的个人资料中select他们的性别。

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

如何创build一个空白值,如果没有任何内容传递给user.sex列,列表将默认为空值? 我简单地把男或女作为一个string。

目的是我想要一个空值,所以validation可以确保他们知道他们必须select它。

有两种可能性,这取决于你在做什么:

include_blank

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

这将在select中始终包含一个空白选项,如果用户在编辑表单上看到该选项,则可以让用户将值设置回空白值。

prompt

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

这将包括指定的提示值,只要该字段尚未设置。 如果它(例如在编辑表单上),则不需要提醒用户他们需要select一个值,这样提示就不会出现

我想你可以做这样的事情:

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

在Rails 4中你可以实现这样的提示:

 <%= f.select :gender, %w{ Male Female }, {:prompt => "Gender..."} %> 

它以简单的forms为我工作。

你跟着去

 <%= f.select :gender, %w{ Male Female }, :include_blank => true %>