select_tag :country_id,options_from_collection_for_select(Country.order('priority desc,name asc'),"id","name"),{ :prompt => 'Select a country',:include_blank => 'None' } %>
符合预期,除了:include_blank => ‘没有’.呈现空白选项.像这样:
<option value=""></option>
第二,使用select_tag.如何指定默认值.例如,如果我需要选择框来选择特定国家/地区.我尝试添加:selected => Country.first无济于事:
<%= select_tag :country_id,{ :prompt => 'Select` a country',:include_blank => 'None',:selected => Country.first } %>
以上始终选择“选择国家/地区”.
为什么?
解决方法
空白价值
我不认为这对其他帖子有足够的重视:
select_tag上的include_blank不尊重传递给它的字符串.它只将它解释为真/假值.
要为具有特定字符串的select_tag设置空白值,您需要使用提示.
选定的价值
由于select_tag不属于某个对象(选择方式),因此您需要将所选值指定为选项的一部分.将所选值传递给select_tag的选项参数.
在您的情况下,您使用options_from_collection_for_select来帮助生成这些选项.此方法采用第四个参数指定应选择哪个选项.
options_from_collection_for_select( Country.order('priority desc,:id,:name,Country.find_by_name('Canada') )