12

我有一个集合选择,如下所示:

<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>

有时会出现 :prompt 选项的提示,但有时不会。有谁知道我可以从哪里开始解决这个问题?可能是我看太久了……

4

5 回答 5

43

:include_blank使用空白选项的值似乎可以解决问题。尝试这个:

 {:include_blank => "Please select"}
于 2009-05-14T09:46:50.330 回答
13

:prompt当没有选定的值时出现在列表中。

:include_blank始终出现在列表中,即使您已使用选定值加载选择。


如果您希望您的选择始终"Select a State/Province"作为第一个选项:

<%= f.collection_select :region_id, Region.all, :id, :name, include_blank: 'Select a State/Province' %>

如果您希望您的收藏"Select a State/Province"仅在尚未选择区域时作为第一个选项:

<%= f.collection_select :region_id, Region.all, :id, :name, prompt: 'Select a State/Province' %>

来源:http ://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

于 2014-03-13T21:27:07.607 回答
2

我一直有同样的问题。使用“提示”似乎为选择标签创建了一个属性,问题是我不知道这样的属性。加上它显然不是 Rails 文档http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select中描述的内容。

使用 include_blank 对我来说似乎是一个很好的解决方法。

干杯,罗宾。

于 2011-09-27T08:43:13.110 回答
0

尝试这个<%= f.collection_select :region_id, Region.all, :id, :name, {prompt: 'Select a State/Province'}, {class: "form-control"} %>

于 2016-08-19T10:34:28.823 回答
-1

代替

:prompt => "Select a State/Province"

尝试

:allow_blank => "Select a State/Province"

编辑:是的,在检查 API 之后,我可以看到我弄糊涂了,提示是根据文档的正确方法,可能只是有时它出现是因为你的对象已经有一个值,因此提示在那里但是它不是下拉列表中当前选择的值???

于 2009-04-18T09:10:07.977 回答