30

我在我的应用程序中使用 simple_form。

如何在我的选择中赋予空白值与 "" 不同的文本?

我只是找到一个选项是否包含空白。

4

4 回答 4

57

这取决于您如何构建选择选项。如果你像下面的代码那样做,只需将一个字符串传递给 :include 空白。

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'Some text here'})

如果您使用 options_for_select() 设置选项,则可以执行以下操作:

options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])

value="" 是数组中的第二个值,下拉列表中显示的名称是第一个。因此,在您的情况下,您可以将第二个答案更改为如下所示:

options_for_select([["Some text here", ""], ["Dollar", "$"], ["Kroner", "DKK"]])
于 2012-04-05T21:18:07.407 回答
34

代替

:include_blank => true

尝试

:include_blank => "your text here"

如果这是你正在寻找的。

于 2012-04-06T11:24:05.210 回答
23

如果您正在使用该select_tag(name, option_tags = nil, options = {})函数,正确的选项是:prompt => "Some text"而不是为select

于 2012-10-23T07:52:38.870 回答
1

您可以通过添加["Your Text", ""]到传递给的数组的开头来手动执行此操作options_for_select,或者添加"<option value=\"\">#{h("Your Text"}</option>"到传递给的字符串的开头select_tag

于 2012-04-05T21:17:26.853 回答