我有一个集合选择,如下所示:
<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>
有时会出现 :prompt 选项的提示,但有时不会。有谁知道我可以从哪里开始解决这个问题?可能是我看太久了……
我有一个集合选择,如下所示:
<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>
有时会出现 :prompt 选项的提示,但有时不会。有谁知道我可以从哪里开始解决这个问题?可能是我看太久了……
:include_blank
使用空白选项的值似乎可以解决问题。尝试这个:
{:include_blank => "Please select"}
: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
我一直有同样的问题。使用“提示”似乎为选择标签创建了一个属性,问题是我不知道这样的属性。加上它显然不是 Rails 文档http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select中描述的内容。
使用 include_blank 对我来说似乎是一个很好的解决方法。
干杯,罗宾。
尝试这个<%= f.collection_select :region_id, Region.all, :id, :name, {prompt: 'Select a State/Province'}, {class: "form-control"} %>
代替
:prompt => "Select a State/Province"
尝试
:allow_blank => "Select a State/Province"
编辑:是的,在检查 API 之后,我可以看到我弄糊涂了,提示是根据文档的正确方法,可能只是有时它出现是因为你的对象已经有一个值,因此提示在那里但是它不是下拉列表中当前选择的值???