首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails select_tag -设置include_blank并选择默认值

Rails select_tag -设置include_blank并选择默认值
EN

Stack Overflow用户
提问于 2011-06-24 03:17:58
回答 1查看 17.6K关注 0票数 7
代码语言:javascript
运行
复制
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 => 'None'除外。呈现空白选项。像这样:

代码语言:javascript
运行
复制
<option value=""></option>

第二,使用select_tag。如何指定默认值。例如,如果我需要复选框来选择特定的国家。我试图添加:selected => Country.first,但没有结果:

代码语言:javascript
运行
复制
<%= select_tag :country_id, options_from_collection_for_select(Country.order('priority desc, name asc'), "id", "name"), { :prompt => 'Select` a country', :include_blank => 'None', :selected => Country.first } %>

上面总是选择“选择一个国家”。

为什么?

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 20:53:51

空白值

我不认为这在其他帖子上得到了足够的关注:

include_blank on select_tag 不尊重传递给它的字符串。它只将其解释为一个true**/**false 值.。

为了用特定的字符串为select_tag设置一个空白值,您需要使用prompt

选定值

因为select_tag不属于一个对象,所以按照select的方式,您需要将选定的值指定为选项的一部分。将选定的值传递到select_tagselect_tag参数中。

在您的示例中,您使用options_from_collection_for_select来帮助生成这些选项。此方法采用第四个参数,该参数指定应选择哪个选项。

代码语言:javascript
运行
复制
options_from_collection_for_select( 
  Country.order('priority desc, name asc'), 
  :id, 
  :name,
  Country.find_by_name('Canada')
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6462956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档