Ruby Rails集合选择是否显示空白的“提示”值?

时间:2009-04-17 14:10:28

标签: ruby-on-rails ruby forms collections prompt

我有一个选择如下的集合:

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

有时会出现来自:prompt选项的提示,但有时则不会。有谁知道我可以在哪里开始解决这个问题?也许我已经看了太久......

5 个答案:

答案 0 :(得分:43)

带有空白选项值的

:include_blank似乎可以解决问题。试试这个:

 {:include_blank => "Please select"}

答案 1 :(得分:12)

如果没有选定的值,

: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

答案 2 :(得分:2)

我一直有同样的问题。使用'prompt'似乎为select标签创建了一个属性,问题是我没有这样的属性。此外,它显然不是Rails文档http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select中描述的内容。

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

干杯,罗宾。

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

而不是

:prompt => "Select a State/Province"

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